我有几个使用公共库项目的应用程序项目。 我最近尝试移动从每个应用项目的AndroidManifest.xml一些共同活动的声明进库的清单,并启用了清单合并manifestmerger.enabled=trueproject.properties

一切在调试版本中都可以正常工作,但是发行版本(由Proguard混淆)会失败,并带有ActivityNotFoundException 这是因为Proguard混淆了在库清单中声明的​​“活动”名称,而不是在应用程序清单中声明的​​“活动”名称。

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

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

===============>>#1 票数:2

标准的Ant构建过程会调用aapt工具来创建ProGuard配置(bin / proguard.txt),该配置保留必要的类(例如,它认为使用的所有活动)。 如果这对您的项目结构不起作用(可能是错误或不支持的情况),则可以将类自己保存在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手册>示例> 完整的Android应用程序中找到更多手动配置。

  ask by Graham Borland translate from so

未解决问题?本站智能推荐: