在出现重大收入损失后,过了一段时间才发现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
}