3

在出现重大收入损失后,过了一段时间才发现Android R8 代码收缩器会阻止 Amazon In-App Purchasing (IAP) 2.0 工作。Android Studio 现在默认使用 R8。幸运的是,gradle.properties 中的以下内容似乎能够阻止 R8:

android.enableR8=false

我担心 R8 将来会被强制使用,这将是一场灾难。我正在尝试找到一种使它们兼容的方法。有人在亚马逊的论坛上发了一个类似的问题,这应该是此类问题的最佳场所,但我感觉亚马逊已经停止支持该论坛,因为我最近的两个问题没有收到亚马逊的回复。

我在 R8 使用的 proguard-project.txt 中有以下内容

#amazon
-dontwarn com.amazon.**
-keep class com.amazon.** {*;}
-keepattributes *Annotation*
-optimizations !code/allocation/variable
-optimizationpasses 1

据我了解,R8 忽略了优化通道。我怀疑这就是原因。

编辑(2019-05-30) proguard-project.txt 的上述脚本来自亚马逊的应用程序内购买文档应用 程序的 build.gradle 具有以下内容:

release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
    signingConfig signingConfigs.Release

}
4

3 回答 3

3

proguard-android.txt使用,因此无论指定的数量如何,-dontoptimize都不应该使用 ProGuard-optimizationpassesR8 进行优化。如果您有兴趣,您可以在 下查看可用的默认 ProGuard 文件build/intermediates/proguard-files/proguard-android-optimize.txt是允许优化的一种。

在这一点上,鉴于 R8 的优化似乎没有开启,我不确定是否有很多解决方法。我建议您向Google 的问题跟踪器提交问题,并提供尽可能多的详细信息以帮助他们重现问题。他们通常对此类问题非常敏感。

于 2019-05-31T13:29:03.613 回答
1

现在应该与 R8 一起使用,将其添加到您的主要 build.gradle 依赖项中:

buildscript {
    repositories {
        maven {
            url 'http://storage.googleapis.com/r8-releases/raw'
        }
    }
    dependencies {
        classpath 'com.android.tools:r8:1.6.42'  //Must be before the Gradle Plugin for Android. - Or any other version
        classpath 'com.android.tools.build:gradle:...'
     }
}
于 2019-11-21T12:37:27.217 回答
0

构建.gradle

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

proguard-rules.pro

-dontwarn com.amazon.**
-keep class com.amazon.** {*;}
-keepattributes *Annotation*
-dontoptimize

gradle.properties

# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false

这对我有用。

于 2019-07-02T07:32:47.523 回答