当我尝试使用意图将从主项目传递到库项目时,它可以正常工作,但是.....当我尝试从库项目到主项目,它不承认主项目中的类。
我尝试在我的图书馆项目中写下这个意图:
Intent intent = new Intent(this,com.example.uploadvideo.class);
startActivity(intent);
我在主项目和图书馆项目的清单中添加了我想要连接的两个活动。
答案 0 :(得分:4)
图书馆项目不了解主要项目。 首选的解决方案是使用动作而不是尝试直接在intent中加载类。如果您想重新使用该库,这也将为您提供更大的灵活性。
所以图书馆会这样做
Intent intent = new Intent("com.example.action_video_upload");
intent.setPackage(mContext.getPackageName()); // only deliver to host app
并且主项目将使用
在清单中注册该意图<intent-filter . . . >
<action android:name="com.example.action_video_upload" />
</intent-filter>
可在此处找到更多信息:developer.android.com
答案 1 :(得分:2)
图书馆计划包含可在Android项目中引用的可共享的Android源代码和资源。当您拥有要重用的公共代码时,这非常有用。库项目无法安装到设备上,但是,它们会在构建时被拉入.apk文件。
换句话说,图书馆项目将被重新引用。
从库中调用主项目的意图是有意义的。
实际上,渲染库项目效率低,无法处理当前主项目以外的项目。
答案 2 :(得分:1)
开始下一个活动:
Intent intent = new Intent(this,com.example.UploadVideo.class);
startActivity(intent);
因为目前您在第二个参数中将错误的Activity名称传递给Intent构造函数