8得票1回答
当minifyEnabled为true时,启动应用程序时,在FirebaseInitProvider.onCreate中发生java.lang.IncompatibleClassChangeError错误。

测试环境 / 依赖项 Android Studio:Android Studio Arctic Fox Beta 2 和 Bumblebee Canary 1 AGP:7.1.0-alpha01 Firebase Analytics:com.google.firebase:firebase...

12得票2回答
基准配置文件 x R8/Proguard

我一直在尝试使用Android的Baseline Profile和MacroBenchmark库来提高应用程序的性能。 我的问题是,建议使 MacroBenchmark的构建类型与 release 构建尽可能接近,但在Proguard规则中加入 -dontobfuscate 。 如果生产应用...

23得票2回答
Proguard和R8有什么区别?

最新版的Android Studio (3.4) 刚发布,它默认支持 R8 而非 Proguard。有人能解释一下两者之间的关键差异以及使用 R8 的任何显著好处吗?

30得票8回答
发布版本中的致命异常:java.lang.NullPointerException

我在应用程序的发布版中遇到了一个奇怪的问题。以下是我的异常信息:Fatal Exception: java.lang.NullPointerException` throw with null exception in.hopq.hopq.authentication.models.AppUp...

31得票3回答
D8和R8 Android之间的区别

随着安卓工作室引入了两个新工具D8和R8。 根据谷歌文档,D8是一个DEX工具,而R8是一个progourd工具,但是根据他们的解释,两者都在做以下几乎相同的事情: D8是一个dexer,将java字节码转换为dex代码。 R8是一个Java程序缩小和最小化工具,将Java字节码转换为优化的...

12得票2回答
Android编译失败,显示R8错误

在启用 Android Studio 3.4-RC3 上的 R8 后,构建失败并出现以下错误。如果使用 android.enableR8=false,则构建成功。 编译期间遇到了未定义的值。这通常是由于无效的 dex 输入引起的,该输入使用了一个在导致使用的所有控制流路径上都没有定义的寄存器...

10得票2回答
有没有办法防止Android应用程序代码缩小器R8更改行号?

最近,Android Studio默认使用R8代替ProGuard。 即使代码被混淆,来自ProGuard的堆栈跟踪也很容易理解,而无需使用任何工具。让我们以以下示例为例: java.lang.NullPointerException: Attempt to invoke virtual...

13得票2回答
为什么在发布版本中默认情况下minifyEnabled为false?

在 build.gradle(app)文件中,默认情况下,我们有以下内容,buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-...

8得票3回答
R8 minify: 类型定义多次

构建已签名的发布版 APK 时,我遇到以下错误: .gradle/caches/transforms-2/files-2.1/532a317ccd54c8ae4f622faeb8b534a9/jetified-wordup-core-0.2.1-runtime.jar:de/coderedd...

8得票3回答
使用R8迁移带有Proguard的Android项目,缺少rt.java文件,Android Studio 4.2

我将我的Android Studio版本从4.1升级到了4.2,但由于Proguard版本太旧(4.7)且与Java 10不兼容,我的项目不能编译。因此,我决定将项目从Proguard迁移到R8,但是出现了以下错误: “文件未找到:/Applications/Android Studio.ap...