#java #android #flutter
Вопрос:
Я запускаю команду сборки для своего проекта, чтобы проверить режим выпуска локально, прежде чем он будет запущен, все работает нормально, затем приложение было загружено и сразу закрыто при выполнении этой команды:
flutter run --release --flavor prod
и он терпит неудачу с этим сообщением об ошибке :
Launching lib/main.dart on I4113 in release mode...
Running Gradle task 'assembleProdRelease'...
Running Gradle task 'assembleProdRelease'... Done 35.0s
✓ Built build/app/outputs/flutter-apk/app-prod-release.apk (32.6MB).
Installing build/app/outputs/flutter-apk/app.apk... 5.4s
Flutter run key commands.
h Repeat this help message.
c Clear the screen
q Quit (terminate the application on the device).
E/AndroidRuntime(31478): FATAL EXCEPTION: main
E/AndroidRuntime(31478): Process: io.rev PID: 31478
E/AndroidRuntime(31478): java.lang.NoSuchMethodError: No interface method a()Ljava/lang/String; in class Landroid/content/res/XmlResourceParser; or its super classes (declaration of 'android.content.res.XmlResourceParser' appears in /system/framework/framework.jar)
E/AndroidRuntime(31478): at androidx.core.content.FileProvider.parsePathStrategy(Unknown Source:39)
E/AndroidRuntime(31478): at androidx.core.content.FileProvider.getPathStrategy(Unknown Source:13)
E/AndroidRuntime(31478): at androidx.core.content.FileProvider.attachInfo(Unknown Source:13)
E/AndroidRuntime(31478): at android.app.ActivityThread.installProvider(ActivityThread.java:7045)
E/AndroidRuntime(31478): at android.app.ActivityThread.installContentProviders(ActivityThread.java:6590)
E/AndroidRuntime(31478): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6485)
E/AndroidRuntime(31478): at android.app.ActivityThread.access$1300(ActivityThread.java:225)
E/AndroidRuntime(31478): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1865)
E/AndroidRuntime(31478): at android.os.Handler.dispatchMessage(Handler.java:107)
E/AndroidRuntime(31478): at android.os.Looper.loop(Looper.java:359)
E/AndroidRuntime(31478): at android.app.ActivityThread.main(ActivityThread.java:7418)
E/AndroidRuntime(31478): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(31478): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
E/AndroidRuntime(31478): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
Ответ №1:
R8 удалил класс при выпуске. Попробуйте добавить эти строки в свой app/proguard-rules.pro
-keepattributes EnclosingMethod
-keepattributes InnerClasses
-dontwarn org.xmlpull.v1.**
-dontnote org.xmlpull.v1.**
-keep class org.xmlpull.** { *; }
-keepclassmembers class org.xmlpull.** { *; }
app/build.gradle
:
release {
proguardFiles getDefaultProguardFile(
'proguard-android-optimize.txt'),
'proguard-rules.pro'
signingConfig signingConfigs.release
}