签名构建的Android中反射失败

问题描述 投票:0回答:1

我正在将我们正在进行的项目模块化。

比如说有一个应用模块。

还有'n'个其他模块。这些模块实现了app模块(即实现项目(':app_module'))

在app模块中,我需要启动模块1...n。

我已经使用反射来获取app_module中的活动引用。

val intent = Intent()
intent.setClass(context, Class.forName("com.application.myapp.HelpActivity"))
context.startActivity(intent) 

所以当我运行应用程序时,它工作正常。

但是当我生成一个 签定的调试构建 我安装了它,我得到了 ClassNotFoundException

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.application.myapp.HelpActivity" on path: DexPathList

知道是什么原因导致反射失败吗?签定的调试构建

: 这不是亲卫队的问题。我已经禁用了它,我已经检查过了。同样的问题是存在的。

谢谢你,我正在把我们正在进行的项目模块化。

android gradle proguard android-module
1个回答
0
投票

更新:该问题是因为该模块被视为动态模块。

导致该问题的原因是 dist:onDemand="true" 模块的清单中。

我把它设置为false,然后通过bundletool生成应用捆绑包并安装。现在工作正常了。

© www.soinside.com 2019 - 2024. All rights reserved.