在谷歌Play上部署我的Flitter应用程序后,它在启动时崩溃。它为2台设备(Google Test devices on Play)工作,并为其他设备提供以下错误。
问题:java.lang.不满意LinkError:dalvik.system.PathClassLoader[DexPathList[[[zip file"/data/app/abc.pota.tallxy-1/base.apk], nativeLibraryDirectory=[/data/app/abc.pota.tallxy-1/lib/arm64, /data/app/abc.pota.tallxy-1/base.apk!/lib/arm64-v8a /system/lib64 /vendor/lib64 /system/vendor/lib64 /product/lib64]]]找不到libflutter.so
因此,我在我的应用程序/构建中添加了以下代码。格雷德尔档案。
defaultConfig {
..
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
但不是在所有的谷歌测试设备上,甚至是我的手机上(当我从谷歌游戏下载时),它会因以下错误而崩溃。
问题:abc的本地崩溃。波塔。塔尔西
04-09 18:33:39.560:E/HwSystemManager(1901):HandleInstalledPackageInfoService:第二个操作:pkgData为空04-09 18:33:39.683:E/HwLauncher(2408):PowerSaveLauncherModel on PackageAdded:not inPowerSaveLauncher 04-09 18:33:39.908:E/fm_if。c(16065):找到id:fm并开始打开设备04-09 18:33:39.939:E/Finsky(6061):[135]com.google.Android芬斯基。设置。ae。a(52):预取预加载时出错04-09 18:33:39.939:E/Finsky(6061):com.google.Android芬斯基。设置。抓取者。RawDocumentsFetchException[reason=pai_config,account=[3IPBCY9BVZDDFTESCmyodo8 OY]]04-09 18:33:39.939:E/Finsky(6061):在com上。谷歌。Android芬斯基。设置。ae。a(源文件:31)04-09 18:33:39.939:E/Finsky(6061):在com上。谷歌。Android芬斯基。设置。ag。电话(未知来源)04-09 18:33:39.939:E/Finsky(6061):在java。util。同时发生的未来任务。运行(FutureTask.java:237)04-09 18:33:39.939:E/Finsky(6061):在java上运行。util。同时发生的线程池执行器。runWorker(ThreadPoolExecutor.java:1133)04-09 18:33:39.939:E/Finsky(6061):在java。util。同时发生的ThreadPoolExecutor$Worker。run(ThreadPoolExecutor.java:607)04-09 18:33:39.939:E/Finsky(6061):在java上运行。朗。丝线。run(Thread.java:776)04-09 18:33:40.174:W/System(16106):类加载器引用的未知路径:/System/app/YouTube/lib/arm64
删除所有proguard代码后出现异常。谷歌控制台(Google console)表示,以下四种设备均出现故障。
设备与问题谷歌像素2(walleye)-Android8.1华为伴侣9(HWMHA)-Android7.0谷歌像素(旗鱼)-Android7.1三星银河S9(美国)(starqlteue)-Android8.0
5/>-xsLCE7j_6PxDsQ0AqFF1ZA==/base.apk!/lib/arm64-v8a, /system/lib64]]]找不到"libflutter.so"java.lang.不满意LinkError:dalvik.system.PathClassLoader[DexPathList[[zip file"/data/app/abc.pota.tallxy-1/base.apk], nativeLibraryDirectory=[/data/app/abc.pota.tallxy-1/lib/arm64, /data/app/abc.pota.tallxy-1/base.apk!/lib/arm64-v8a /system/lib64 /vendor/lib64 /system/vendor/lib64
我的应用程序/build.gradle如下。
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
compileSdkVersion 28
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
applicationId "abc.pota.tallxy"
minSdkVersion 21
targetSdkVersion 28
multiDexEnabled true
versionCode 5
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
flutter {
source '../..'
}
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation 'com.google.firebase:firebase-core:16.0.8'
implementation 'androidx.appcompat:appcompat:1.1.0-alpha04'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
}
apply plugin: 'com.google.gms.google-services'
谢谢你抽出时间
如果您使用的是minifyEnabled true
,您将不得不面对这个问题。
解决方案1
在构建中删除这一行。gradle
文件。
解决方案2
如果你仍然想使用minifyEnabled
,你还必须遵循以下步骤。
I.添加extra gen snapshot options=--将
。属性
二.创建
/android/app/proguard-rules.pro
文件并添加下面列出的规则。
#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
三.在您的
build.gradle(app)
中,添加以下内容
buildTypes {
release {
signingConfig signingConfigs.debug
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
我尝试使用此插件裁剪图像,并在iOS上效果很好,但在Android上,应用程序会崩溃。控制台像这样说。 有人知道怎么修理这个吗?
我有这个问题,索门能帮我吗?因为seet依赖于flutter_localizations,而SDK依赖于intl0.17.0,所以intl0.17.0是必需的。因此,由于seet依赖于intl^0.16.0,版本解决失败。pub get失败(1;因此,由于seet依赖于intl^0.16.0,版本解决失败。)
正在启动lib\main。IA Emulator上AOSP上的dart处于调试模式。。。正在运行Gradle任务“assembleDebug”。。。警告:插件路径_provider_android需要android SDK版本31。警告:插件共享的_首选项_android需要android SDK版本31。一个或多个插件需要更高的Android SDK版本。通过将以下内容添加到D:\App Dev
这只有在我添加了足够多的依赖项时才会发生,这可能是预期的。我已经按照说明(https://developer.Android.com/studio/build/multidex.html)在Android项目文件中启用了multidex并添加了multidex依赖项,但不确定如何处理Flutter应用程序的“为multidex配置您的应用程序”中的第2步,甚至不确定是否遗漏了该步骤。 > 从工具栏
我无法在尝试设置平台后修复颤振问题,问题如下所示: https://i.stack.imgur.com/uddfn.png
我一直试图设置一个颤振路径,所以我不需要每次都做一个临时路径。我是新的使用终端和Unix(Mac用户也),不明白如何设置我的路径与说明在网站上。我不完全确定我的flutter SDK在哪里,这也没有帮助。想一步一步地知道该怎么做。