无法从其他模块打开活动

Posted

技术标签:

【中文标题】无法从其他模块打开活动【英文标题】:Can't open Activity from other module 【发布时间】:2014-09-22 11:27:18 【问题描述】:

我添加了对新模块的引用,并尝试从中打开ActivitythrowsException 表示:

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)。

如果尚未设置,还需要启用清单合并。

【讨论】:

以上是关于无法从其他模块打开活动的主要内容,如果未能解决你的问题,请参考以下文章

从另一个提供循环依赖的模块打开活动

无法从通知中打开活动

当其他Excel实例具有焦点时,无法获取活动工作表或选定范围

从班级打开活动

通过侧边菜单移动到其他模块时如何完成所有活动

android:立即启动一个活动,然后加载内容