Мое приложение падает при использовании Proguard с Hyperledger Iroha - PullRequest
1 голос
/ 23 сентября 2019

Когда я пытаюсь сделать minify включенным true в моем build.gradle файле, используя приложение ниже кода сбой:

Код

buildTypes {
    release {
        debuggable false
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debug{
        debuggable true
        minifyEnabled true
        shrinkResources false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
  • , когда я сделал: minifyEnabled true после сборки релиза apk: app-release.apk, приложение упало.
  • , когда я сделал: minifyEnabled false после сборки релиза apk: app-release.apk, сборка в порядке.

введите описание изображения здесь

Ответы [ 3 ]

0 голосов
/ 23 сентября 2019

Как указано в сообщении об ошибке, загрузчик классов не смог найти класс org.apache.xerces.datatype.DatatypeFactoryImpl

Proguard изменяет имя класса, чтобы предотвратить это, вы можете добавить

-keep class org.apache.**{ *; }

в вашем файле progurad-rules.pro

0 голосов
/ 25 сентября 2019

Добавьте это к proguard

-keep public class jp.co.soramitsu.iroha.android.** {
      public protected *;
      public private *;
}
0 голосов
/ 23 сентября 2019

Как указано в ссылочном ресурсе, minifyEnabled удалит неиспользуемые коды.В вашей ситуации могут быть методы, которые используются с JNI, иначе компилятор не знал, что он используется.Опять же, в соответствии с ref, вы можете указать, какие файлы следует оставить для проверки встроенного minify (аналогично proguard). Ответ здесь

...