Flutter App工作调试模式,在发布应用程序不工作
Posted
技术标签:
【中文标题】Flutter App工作调试模式,在发布应用程序不工作【英文标题】:Flutter App working debug mode, in release app not working 【发布时间】:2021-03-02 23:23:34 【问题描述】:当我运行 flutter run --release -v 时出现以下错误
Caused by: java.lang.IllegalAccessError: Interface androidx.lifecycle.b implemented by class
com.mr.flutter.plugin.filepicker.FilePickerPlugin$LifeCycleObserver is inaccessible (declaration of 'com.mr.flutter.plugin.filepicker.FilePickerPlugin$LifeCycleObserver' appears in
/data/app/app.projects.xxx.mobile-1/base.apk)
我的 Gradle 是 类路径'com.android.tools.build:gradle:4.0.0' //4.0.1 //3.3.2 //3.5.3 //3.4.2
distributionUrl=https://services.gradle.org/distributions/gradle-6.1.1-all.zip
【问题讨论】:
【参考方案1】:将您的年级类路径和分发 url 升级到最新版本。 pubspec.yaml 中的文件选择器也可以转换为 latext 版本
检查它是否有效...如果没有则打开android/gradle.properties
并查看以下行是否存在如果没有则添加
android.useAndroidX=true
android.enableJetifier=true
检查您的android/app/build.gradle
中是否有以下内容
minSdkVersion 21
targetSdkVersion 28
multiDexEnabled true
然后flutter clean
然后,不要直接运行flutter run --release -v
,而是使用与您的问题无关的以下内容,但它会导致另一个您将得到一些缺失文件异常。
flutter build apk --debug
then flutter build apk --profile;
then flutter build apk --release;
【讨论】:
【参考方案2】:这对我有用。
转到android/gradle
的build.gradle
文件并降级到版本 3.6.2,如下所示,
dependencies
classpath 'com.android.tools.build:gradle:3.6.2'
来自thread的答案。
【讨论】:
【参考方案3】:我有类似的问题,我猜它与 gradle 4+ 版本有关,我可以按照以下步骤解决这个问题。
在 app/proguard-rules.pro 中添加以下行(如果文件不存在,则创建一个。)
-keep class androidx.lifecycle.DefaultLifecycleObserver
来自 logcat 的错误,它只是在发布版本中存在问题。模拟器工作正常。 -
03-12 07:41:32.281 22847 22847 E AndroidRuntime: java.lang.IllegalAccessError: Interface androidx.lifecycle.b implemented by class com.mr.flutter.plugin.filepicker.FilePickerPlugin$LifeCycleObserver is inaccessible (declaration of 'com.mr.flutter.plugin.filepicker.FilePickerPlugin$LifeCycleObserver' appears in base.apk)
相关讨论/问题可以在这里找到 -https://github.com/flutter/flutter/issues/58479
【讨论】:
以上是关于Flutter App工作调试模式,在发布应用程序不工作的主要内容,如果未能解决你的问题,请参考以下文章
在 Ios 14 Flutter App 中,在 Debug 模式下不保存
API 不工作/http 错误 SocketException:在发布版本中主机查找失败(在调试模式下工作)对于 Flutter