0

昨天我将 Android Studio 更新到了新的 3.5 版本。重新启动我的电脑后,Android Studio 无法再编译我的应用程序。我有3个这样的错误:

App.java:29:错误:此方法包含本机引用并将被缩小。[继续失踪]

在两个不同的 Java 文件中,我在其中调用了一些本机方法

我知道 3.5 版将 R8 作为默认代码混淆器,因此在我的 build.gradle 中,我从我的调试/发布构建类型中注释了 useProguard false/true。现在看起来像这样:

buildTypes {
    debug {
        debuggable true
        jniDebuggable true
        signingConfig signingConfigs.debug
        minifyEnabled false //shrink
        //useProguard false //obfuscate
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        ndk {
            debuggable = true
        }
    }
    release {
        debuggable false
        jniDebuggable false
        signingConfig signingConfigs.release
        minifyEnabled true //shrink
        //useProguard false //obfuscate
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        ndk {
            debuggable = false
        }
    }
}    

我怎么解决这个问题?

4

1 回答 1

0

自添加 R8 以来,许多库的 Proguard 规则都已更改。例如,Moshi 更新了规则:https ://github.com/square/moshi/blob/master/moshi/src/main/resources/META-INF/proguard/moshi.pro ,因此它可以与 R8 一起使用。请检查其他库并添加新规则

于 2019-09-08T15:20:23.740 回答