gpt4 book ai didi

android - Proguard 混淆了合并库 list 中的 Activity 名称

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:19 24 4
gpt4 key购买 nike

我有几个使用公共(public)库项目的应用程序项目。我最近尝试将一些常见的 Activity 声明从每个应用程序项目的 AndroidManifest.xml 移动到库的 list 中,并在 project.properties 中使用 manifestmerger.enabled=true 启用 list 合并。

在调试版本中一切正常,但发布版本(被 Proguard 混淆)失败并出现 ActivityNotFoundException。这是因为 Proguard 混淆了库 list 中声明的​​ Activity 的名称,而不是应用程序 list 中的名称。

我已经检查了应用程序项目的合并 bin/AndroidManifest.xml 文件,它正确地列出了 Activity 名称。

有人可以建议解决方法吗?

最佳答案

标准的 Ant 构建过程调用 aapt 工具来创建 ProGuard 配置 (bin/proguard.txt),该配置保留必要的类(例如它认为使用的所有 Activity )。如果这对您的项目结构不起作用(可能是错误或不受支持的情况),您可以自己在 proguard-project.txt 中保留这些类:

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider

如果生成的应用程序仍然缺少其他类,您可以在 ProGuard 手册 > 示例 > A complete Android application 中找到更多手动配置.

关于android - Proguard 混淆了合并库 list 中的 Activity 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16071498/

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