在巨大的收入损失之后,我们花了一段时间才发现Android R8 code shrinker阻碍了amazon应用内购买(iap)2.0的工作。android studio现在默认使用r8。幸运的是,gradle.properties中的以下内容似乎能够阻止r8:

android.enableR8=false

我担心R8将来会被授权,这将是一场灾难。我正试图找到一种方法使它们相互兼容。
有人发布了a similar question on Amazon's forum这应该是回答此类问题的最佳地点,但我感觉亚马逊已经停止支持论坛,因为我最近的两个问题没有得到亚马逊的回复。
我在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的上述脚本来自Amazon's document for In-App Purchasing
应用程序的build.gradle包含以下内容:
release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
    signingConfig signingConfigs.Release

}

最佳答案

proguard-android.txt使用-dontoptimize,因此它根本不应该使用proguard或r8进行优化,不管指定的-optimizationpasses个数是多少。如果您感兴趣,可以在build/intermediates/proguard-files/下看到可用的默认proguard文件。proguard-android-optimize.txt是允许优化的。
在这一点上,考虑到r8的优化似乎没有打开,我不确定是否有很多解决方法。我建议您向Google's Issue Tracker提交问题,尽可能提供详细信息以帮助他们重现问题。他们通常对这样的问题很敏感。

10-04 18:42