问题标签 [android-r8]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - D8和R8安卓的区别
由于android studio 推出了两个新工具D8 和R8。根据谷歌文档,D8 是一个 dex 工具,R8 是一个 progourd 工具,但正如他们的解释一样,两者都在做几乎相同的事情,如下所示:
D8是一个将java字节码转换为dex码的dexer。
R8是一个java程序收缩和缩小工具,将java字节码转换为优化的dex码。
似乎两者都从字面上将java字节码转换为dex码。那么,在转换 dex 代码的情况下,他们实际上在内部做什么?
android - 如何仅关闭 Android R8 中的混淆功能?
我使用 Android Studio 3.3 Canary 5、Gradle 4.9、gradle plugin 3.3.0-alpha05
不工作。
编辑:
@JakeWharton:“您为此使用 ProGuard 配置,而不是 Gradle DSL。使用 -dontshrink 禁用收缩,使用 -dontobfuscate 禁用混淆,使用 -dontoptimize 禁用优化。”
低密度脂蛋白
proguard-rules.pro
android - Android Studio 3.2 上的 AndroidX - 运行应用程序时出现验证错误
将我的应用程序迁移到 Android Studio 3.2 上的 AndroidX 库。在调试中运行时,一切都按预期工作,但如果我生成一个签名的 APK,使用 Proguard 进行混淆 - 我收到此错误:
我尝试排除所有 AndroidX 库:
但是问题仍然存在,除非我基本上使用取消混淆
还尝试查看映射文件的类d.a
是什么,但它并没有提示我问题的方向。
喷射器已启用
我在这里错过了什么吗?有没有可能这是 android.preference 库的问题?
- 在Google 问题跟踪器上打开了一个错误。
android - 由于 GRPC 和 R8,Firestore (0.6.6-dev) 出现内部错误
更新 Firebase 依赖项后,我的应用停止工作。崩溃报告显示了这个日志:
由于日志没有对我的源代码的任何类引用,我试图找出依赖关系。
终于明白了,问题是因为R8 shrinker和GRPC。
以下是上述问题的解决方案:
- android.enableR8=false
- -保持类 io.grpc.** { *; }
上述两种解决方案对我来说都不是很有趣。
我不想应用第一种解决方案,因为禁用 R8 会使我的 APK 大小增加 200 KB。第二种解决方案对我来说是个黑客。当单个类引起一些问题时,我不赞成保留整个库。
现在的问题是如何让我的应用程序在启用 R8 的情况下工作并且不让grpc
库远离混淆?
android - 无法为 com.android.build.gradle.internal.dsl.BaseAppModuleExtension 类型的对象设置未知属性“enableR8”
我在 android studio 3.2 中添加了这段代码;
无法为 com.android.build.gradle.internal.dsl.BaseAppModuleExtension 类型的对象设置未知属性“enableR8”这是什么意思?
android - 如何修复因 ProGuard/R8 导致的崩溃?
我正在制作一个简单的应用程序,它运行良好,但是当我尝试使用 ProGuard 缩小/混淆代码时,当我从另一个打开 Activity 时它会崩溃。
使用 R8 时也会发生这种情况。
完整的流程是:
输入 MainActivity,然后生成 CameraActivity,它使用 Firebase MLKit 检测条形码(当然,这使用相机)。当检测到 QR 码时,它会启动 DetailActivity 向服务器发送请求(使用 Retrofit)。使用 Room 将响应保存到 DB。总体而言,该应用程序使用整个架构组件。
它在从 CameraActivity 到 DetailActivity 的转换中崩溃,并且 logcat 中绝对没有关于崩溃的日志。
完整的源代码可以在https://github.com/gincos/bookqr-uc/tree/dev找到
你可以在那里检查我的 proguard-rules 和我的依赖项,大部分应用程序都是用 Kotlin 制作的并使用协程。
提前致谢!
proguard - R8 的一个组件生成一个 VerifyError
我已经通过这个问题两天了。我已经成功构建了我的 Release APK,但是当我在设备中测试这个 APK 时,我得到了这个异常:
我m.a
在构建文件夹中生成的 proguard mappings.txt 文件中对此进行了跟踪,显然它指向r8.GeneratedOutlineSupport
.
每个其他搜索结果都m.a
指向类路径中间的点,而不是整个类路径。所以,如果我没记错的话,这意味着代码/资源收缩器的一部分将产生该错误。
这GeneratedOutlineSupport
首先是什么,我应该把-keep r8.GeneratedOutlineSupport.*
或类似的东西作为一种解决方法吗?
编辑:我想我暂时可以使用 Proguard。
java - Android/Java 混淆:R8 与(ProGuard 或 DexGuard)?
我想知道最强大的混淆工具是什么(避免逆向工程):
- R8 和 ProGuard 之间
- R8 和 DexGuard 之间
谢谢。
android - Android/java:从 ProGuard 到 R8 的过渡/迁移?
我想知道如何从ProGuard过渡/迁移到R8。
我应该从我的 Gradle 文件中删除与 Proguard 相关的行并添加该android.enableR8 = true
行吗?
谢谢。
java - 如何解决 Proguard 问题 - ArrayIndexOutOfBoundsException?
我正在尝试为我的应用程序生成 APK。但是在构建编译器之后会抛出一个
java.lang.ArrayIndexOutOfBoundsException
.
我知道这个错误以编程方式意味着什么。但是如果我禁用minifyEnabled
False。然后生成 APK 并且应用程序运行良好。
但它仍然抛出Process 'command 'C:\Program Files\Android\Android Studio\jre\bin\java.exe'' finished with non-zero exit value 1
我该如何解决这个问题?