#android #android-studio
#Android #android-studio
Вопрос:
Сбой приложения только в режиме выпуска. Если я установлю minifyEnabled false, это не сбой.
Версия плагина Android Gradle: 4.0.1 Версия Gradle: 6.1.1
build.gradle(:app)
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
applicationVariants.all { variant ->
variant.outputs.all { output ->
def date = new Date();
def formattedDate = date.format('yyyyMMdd')
//def entorno = System.getProperty("entorno")
outputFileName = "MOVILIDAD_${variant.buildType.name}_${formattedDate}_${System.getProperty("entorno")}.apk"
}
}
}
ФАТАЛЬНАЯ ОШИБКА
09-15 13:25:13.879 12478-12478/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: es.indra.tdemov, PID: 12478
java.lang.NoSuchMethodError: No interface method h(Ljava/lang/String;Ljava/lang/String;)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)
at androidx.core.content.FileProvider.g()
at androidx.core.content.FileProvider.d()
at androidx.core.content.FileProvider.attachInfo()
at android.app.ActivityThread.installProvider(ActivityThread.java:6768)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6363)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6303)
at android.app.ActivityThread.access$1800(ActivityThread.java:222)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1862)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7230)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Спасибо вам
Ответ №1:
Если вы используете сторонние библиотеки в своем проекте, то обязательно добавьте ProGuard-rule в свои proguard-rules.профессиональный файл для этих библиотек.
Комментарии:
1. Большое вам спасибо
Ответ №2:
Исправлено: метод getDefaultProguardFile не получал файл, потому что имя было неправильным.
Неправильная строка:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
Правильная строка: proguard-rules.pro
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
Фуэнте:https://developer.android.com/studio/build/shrink-code?hl=es