无法从其他模块打开活动
Posted
技术标签:
【中文标题】无法从其他模块打开活动【英文标题】:Can't open Activity from other module 【发布时间】:2014-09-22 11:27:18 【问题描述】:我添加了对新模块的引用,并尝试从中打开Activity
。
throws
和 Exception
表示:
android.content.ActivityNotFoundException:无法找到显式 活动课 com.giljulio.imagepicker.ui/com.giljulio.imagepicker.ui.ImagePickerActivity ;
您是否在 AndroidManifest.xml?
中声明了此活动
除了引用新的module
之外,我还需要添加任何其他内容吗?
【问题讨论】:
您是否确实将活动添加到您的 AndroidManifest.xml 中? 你可以检查一下。 ***.com/questions/16545725/… 在 Manifest 中声明 ImagePickerActivity 活动... 谢谢。它真的没有在我的 AndroidManifest 中定义,但是,也许我不明白,我想使用一个 github 项目(github.com/giljulio/android-multiple-image-picker),如果我将此模块导入我的项目,我需要调用它的主要活动吗?当我这样做时,它会抛出一个异常,它无法识别其中的一些 R.id。模块清单是: 【参考方案1】:您必须在 gradle 中定义依赖项(在您要调用另一个模块活动的模块中):
dependencies
...
compile project(':yourModuleName')
...
添加此同步后,您现在可以使用模块中的活动。
【讨论】:
是直接编辑build.gradle文件,还是Android Studio中有对话框可以使用?【参考方案2】:这样的用户。这对你有帮助
Intent intent = null;
try
intent = new Intent(this,
Class.forName("ir.test.testlibary1.HelloWorldActivity"));
startActivity(intent);
catch (ClassNotFoundException e)
e.printStackTrace();
【讨论】:
【参考方案3】:好吧,所以我迟到了几年。
问题不在于您没有 @arpit 建议的 gradle 依赖项,您似乎报告了运行时异常。此外,@Aman 的建议将有助于处理异常,但不会帮助您启动活动。
如果理解正确,您有一个多模块应用程序(比如说 A-app 模块和 B-lib 模块),需要从一个 B 调用另一个 lib-module(C)。
如果是这种情况,您需要在模块的 (B) Manifest.xml 中的标记内声明该库的活动 (C)。
如果尚未设置,还需要启用清单合并。
【讨论】:
以上是关于无法从其他模块打开活动的主要内容,如果未能解决你的问题,请参考以下文章