概述:
由于 proguard,我在从基本模块访问按需动态功能模块的活动时遇到问题。(很可能我猜)
描述:
我已经实现了一个带有应用程序包的按需动态功能模块,并上传到了 Play 商店。
用它实现了带有自定义规则的proguard。
从 Play 商店下载应用程序并在运行时访问该模块后,该模块将被下载。刚下载完之后,我就要求从我的基本模块访问一个活动到那个动态模块。
我收到如下错误
...
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{xxx.yyyyyy.zzzzzz.stage/xxx.yyyyyy.zzzzzz.apphub.appview.view.AppHubActivity}:
java.lang.ClassNotFoundException: Didn't find class "xxx.yyyyyy.zzzzzz.apphub.appview.view.AppHubActivity"
on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file
...
...
仅供参考:
xxx.yyyyyy.zzzzzz 是我更改的包名以保护隐私。
IRONY:
整个代码在调试中完美运行,同时从本地应用程序包访问它,无需 proguard。
我已经尝试了下面的所有链接来克服这个问题,但不能。
1) https://issuetracker.google.com/issues/120517460
2) https://github.com/android/plaid/issues/764
3) java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/协议版本
4) https://issuetracker.google.com/issues/79478779
5) https://github.com/android/app-bundle-samples/issues/17
我也尝试过我们可以使用的所有类型的 proguard 文件,但仍然无能为力。
还将这两个类都保留在proguard中:基础和动态模块活动类,但没有成功。
希望在这里寻找解决方案。
更新:
在 android OS 8,9 中不工作,但在 android 10 中工作文件。