Android Drawables работают в Debug, но становятся черными квадратами в Release - PullRequest
0 голосов
/ 03 апреля 2020

Я работаю над приложением Android (написанным на флаттере, но я не думаю, что это имеет значение), в котором используется отрисовка с именем quick_plus.png, как показано здесь:

enter image description here

Прекрасно работает в режиме отладки.

Но не в режиме выпуска, где нарисованный quick_plus.png стал черным квадратом. Разархивировав мои APK, я подтвердил, что они тоже содержали, просто черный квадрат:

enter image description here

Не знаю, насколько это актуально, но я сгенерировал эти APK, следуя Комплект документов :

bundletool build-apks \
--bundle=build/app/outputs/bundle/release/app-release.aab \
--output=build/app/outputs/bundle/release/app-release.apks \
--ks=... \
--ks-pass=... \
--ks-key-alias=... \
--key-pass=...

bundletool install-apks --apks=build/app/outputs/bundle/release/app-release.apks

Вот моя build.gradle версия конфигурации:

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release

        minifyEnabled true
        useProguard true

        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

и 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.**  { *; }
-keep class com.dexterous.** { *; }

Кто-нибудь видел это раньше?

1 Ответ

2 голосов
/ 06 апреля 2020

Обнаружена проблема!

Это произошло из-за Android сокращения и запутывания моего кода. Все, что мне нужно было сделать, это добавить файл с именем android/app/src/main/res/raw/keep.xml следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
  tools:keep="@drawable/quick_plus" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...