gpt4 book ai didi

android - 如何在 Android 测试中运行 ProGuard?

转载 作者:行者123 更新时间:2023-11-28 20:08:25 24 4
gpt4 key购买 nike

我们有一个带有一些库(和 native )依赖项的项目,如下所示:

Native SDK ← Library (Wrapper) ← Main Project

首先,这个结构不能改变,因为我们正在重用这些部分。我面临的问题是超过 65k 引用限制。当然,这有一个解决方法——启用 ProGuard。启用它后,项目将编译。

由于我们正在过渡到 Android 的默认测试框架,我们需要向测试配置添加更多依赖项,因此在依赖项中我们现在有:

compile 'com.google.android.gms:play-services-base:7.5.0'
compile 'com.google.android.gms:play-services-gcm:7.5.0'
compile 'com.google.android.gms:play-services-safetynet:7.5.0'
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:recyclerview-v7:22.2.1'

compile files('libs/small-library1.jar')
compile files('libs/small-library2.jar')
compile files('libs/small-library3.jar')
compile files('libs/medium-library1.jar')
compile files('libs/medium-library2.jar')
compile files('libs/medium-library3.jar')
compile files('libs/huge-library1.jar')
compile files('libs/huge-library2.jar')

androidTestCompile 'com.android.support.test:runner:0.3'
androidTestCompile 'com.android.support.test:rules:0.3'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2'

我们使用的是 SDK (API) 22,因此几乎所有内容都是最新版本。问题是,我们的原生 SDK 在 protobuf 层有一堆代码,库包装器很大。对于所有其他 JAR,我们超过了 65k 的限制(但正如我所说,ProGuard 几乎没有解决这个问题)。 Multi-dex 是不可能的,因为它只能在 Android 5.0+ 上运行良好。

我们正在尝试减少代码库,但即便如此,Android 测试仍因方法引用溢出问题(即未编译)而失败。

有什么方法可以同时启用 ProGuard 进行测试吗?

最佳答案

一个选项是将使用 testBuildType 的测试构建更改为发布构建或启用 ProGuard 的另一个构建变体。参见 Gradle User Guide .您也可以尝试解决方案 here ,但我自己还没有尝试过。

关于android - 如何在 Android 测试中运行 ProGuard?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31705341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com