Android 9 аварийно завершает работу - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь уменьшить свой размер apk, установив для minifyEnabled и shrinkResources значение true, но при запуске мое приложение вылетает с этой ошибкой (короткая версия):

java.lang.ClassNotFoundException: Didn't find class "...BaseApplication" on path: DexPathList...

Я нашел много решений для этой ошибки, но кажется, что у всех есть сбои только на Android 4.xx Я тестирую на Android 9 и до сих пор есть эта проблема.Gradle выглядит так:

defaultConfig {
    minSdkVersion 17
    targetSdkVersion 28
    versionName "1.0"

    multiDexEnabled  true
}

И buildTypes:

buildTypes {
    debug {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

А также я добавил это в своем классе приложения:

override fun attachBaseContext(base: Context?) {
    MultiDex.install(this)
    super.attachBaseContext(base)
}

Я толькоесть эта ошибка, если я пытаюсь запустить сборку релиза.Когда я запускаю вариант отладки с теми же настройками, все работает нормально.И также, если я добавляю «debuggable true» в свой вариант выпуска, это нормально.Это происходит только тогда, когда я пытаюсь запустить свой вариант релиза, как описано выше.У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 24 января 2019

когда вы делаете minifyEnabled true в выпуск это означает, что вам нужно указать, для чего, например, все файлы, которые вы не хотите скрывать.BaseApplication, упомянув его в proguard-rules.pro

Пожалуйста, напишите ниже строки в proguard-rules.pro , чтобы устранить вышеуказанную ошибку с помощью BaseApplication Class

-keep public class * extends android.app.Application

Пожалуйста, обратитесь к этой ссылке для получения дополнительной информации о proguard.

Если у вас возникли дополнительные проблемы, пожалуйста, поделитесь контентом из файла proguard.

...