首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使亚马逊的应用程序采购(IAP) 2.0与Android R8协同工作

如何使亚马逊的应用程序采购(IAP) 2.0与Android R8协同工作
EN

Stack Overflow用户
提问于 2019-05-30 16:06:29
回答 3查看 762关注 0票数 3

一段时间后,重大的收入损失,才发现Android R8代码收缩器阻止亚马逊在应用程序采购(IAP) 2.0的工作。Android现在默认使用R8。幸运的是,gradle.properties中的以下内容似乎能够阻止R8:

代码语言:javascript
复制
android.enableR8=false

我担心R8在未来会被强制执行,这将是一场灾难。我正试图找到一种方法使他们兼容。有人在亚马逊论坛上的类似问题上发布了这类问题的最佳位置,但我觉得亚马逊已经不再支持这个论坛了,因为我最近的两个问题还没有得到亚马逊的回应。

下面是R8使用的proguard-project.txt

代码语言:javascript
复制
#amazon
-dontwarn com.amazon.**
-keep class com.amazon.** {*;}
-keepattributes *Annotation*
-optimizations !code/allocation/variable
-optimizationpasses 1

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

Edit(2019-05-30),上面提到的proguard-project.txt脚本来自亚马逊的应用程序采购文档,应用程序的build.gradle有以下内容:

代码语言:javascript
复制
release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
    signingConfig signingConfigs.Release

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-31 13:29:03

proguard-android.txt使用-dontoptimize,因此它不应该使用ProGuard或R8进行优化,而不管指定了多少-optimizationpasses。如果您感兴趣,您可以看到可用的默认ProGuard文件下的build/intermediates/proguard-files/proguard-android-optimize.txt是允许优化的那种。

在这一点上,考虑到R8的优化似乎没有启动,我不确定是否有很多解决办法。我建议您向谷歌的问题追踪器提交一个问题,提供尽可能多的细节,以帮助他们重现问题。他们通常对这样的问题有很好的反应。

票数 3
EN

Stack Overflow用户

发布于 2019-11-21 12:37:27

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

代码语言:javascript
复制
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:...'
     }
}
票数 1
EN

Stack Overflow用户

发布于 2019-07-02 07:32:47

build.gradle

代码语言:javascript
复制
release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }

proguard-rules.pro

代码语言:javascript
复制
-dontwarn com.amazon.**
-keep class com.amazon.** {*;}
-keepattributes *Annotation*
-dontoptimize

gradle.properties

代码语言:javascript
复制
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false

这对我有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56381805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档