1

当我尝试使用以下代码在我的build.gradle文件中执行 minify enabled true 时,应用程序崩溃了:

代码

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,应用程序崩溃了。
  • 当我这样做时:构建发布 apk 后minifyEnabled false:app-release.apk,构建没问题。

在此处输入图像描述

4

3 回答 3

0

如参考资源所示,minifyEnabled 将删除未使用的代码。在您的情况下,可能有与 JNI 一起使用的方法,否则编译器不知道它已被使用。再次根据 ref,您可以指定要阻止检查内置 minify 的文件(与 proguard 相同)。 答案在这里

于 2019-09-23T10:19:00.933 回答
0

将此添加到proguard

-keep public class jp.co.soramitsu.iroha.android.** {
      public protected *;
      public private *;
}
于 2019-09-25T06:46:58.570 回答
0

如错误消息中所示,类加载器无法找到类 org.apache.xerces.datatype.DatatypeFactoryImpl

Proguard 正在更改类名以阻止这种情况发生,您可以添加

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

在您的 progurad-rules.pro 文件中

于 2019-09-23T10:39:27.067 回答