android - 如何使亚马逊应用内购买 (IAP) 2.0 与 Android R8 兼容

标签 android obfuscation in-app-billing android-r8

在重大收入损失后过了一段时间才发现 Android R8 code shrinker阻止亚马逊应用内购买 (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 提出问题,提供尽可能详细的信息以帮助他们重现问题。他们通常对此类问题非常敏感。

关于android - 如何使亚马逊应用内购买 (IAP) 2.0 与 Android R8 兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56381805/

相关文章:

android - 对服务的 react 。谷歌 REST 架构,RxJava

android - 在运行时检查 Android 构建项目目标 API 级别

android - "service account"和 "installed application"有什么区别?

安卓应用内计费 : what is the "developer payload" and how the "Buy" button works?

android - Google 云端硬盘客户端/服务器应用程序

android - 如何对具有 View Animators 的 Android 代码进行单元测试?

android - 如何使用映射文件对 Android 堆栈跟踪进行去混淆处理

perl - 如何隐藏 Perl 代码?

java - 使用 Proguard 进行混淆使我的应用程序无法运行

android - Google In app Billing V3 错误代码