当前位置: 首页 > 知识库问答 >
问题:

颤振问题:本地崩溃

施兴言
2023-03-14

在谷歌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'

谢谢你抽出时间

共有1个答案

邢璞
2023-03-14

如果您使用的是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在哪里,这也没有帮助。想一步一步地知道该怎么做。