我有一个Android库模块,我试图开始像
这样的活动 Intent intent = new Intent(mContext, DetailsScreen.class);
mContext.startActivity(intent);
我在模块中提出了上述请求,并在app gradle文件中引用了该模块,如compile project(':myModule')
此外,我已在app模块和myModule的清单文件中定义了活动,如
<activity
android:name="com.test.mymodule.DetailsScreen" >
<intent-filter>
<action android:name="com.test.mymodule.DetailsScreen" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
但是打开的活动是空白活动。
有人可以向我解释一下我做错了什么吗?
提前致谢:):)
答案 0 :(得分:1)
您应该只在app清单中提及您的 ibrary活动。就像我们如何包含facebook或其他sdk活动一样。并从您的应用程序的意图开始活动。只是尝试从清单中删除活动。仅包含在app模块上(包必须来自库&#39;)
答案 1 :(得分:0)
右键单击App模块,然后单击Open Module Settings,从左侧选择App,在最后一个选项卡上将Module dependecy添加到lib(您不需要以这种方式编辑gradle文件,即使您有在你的gradle似乎是正确的)。 然后,仅在库模块的android清单中声明要打开的活动。
<activity android:name=".myLibActivity"/>
答案 2 :(得分:0)
此答案是从siddhesh复制的
我们可以使用反射来获取类对象。
Class.forName(“ com.mypackage.myMainActivity”)
将此代码添加到“图书馆”项目中以供调用,
try {
Intent myIntent = new Intent(this,Class.forName("com.mypackage.myMainActivity"));
startActivity(myIntent );
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
“ com.mypackage.myMainActivity”是Main项目中存在的Activity,需要从其Library项目中调用。