Android,我如何在我的应用程序中使用外部APK?
我创建了两个项目。第一个,提取手机信息并显示在屏幕上。我有这个项目的.apk文件(例如test.apk) 然后我创建了第二个项目。这一个有一个按钮在屏幕上,我想当我点击按钮,第一个项目运行(显示手机信息)。通过右键单击项目根目录>构建路径>配置构建路径>添加外部JAR>test.apk,我已将test.apk添加到此项目中 然后在代码中,我使用intent调用了它。这是我的代码:Android,我如何在我的应用程序中使用外部APK?,android,jar,external,apk,Android,Jar,External,Apk,我创建了两个项目。第一个,提取手机信息并显示在屏幕上。我有这个项目的.apk文件(例如test.apk) 然后我创建了第二个项目。这一个有一个按钮在屏幕上,我想当我点击按钮,第一个项目运行(显示手机信息)。通过右键单击项目根目录>构建路径>配置构建路径>添加外部JAR>test.apk,我已将test.apk添加到此项目中 然后在代码中,我使用intent调用了它。这是我的代码: btn.setOnClickListener(new OnClickListener() {
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent("com.in.test.MainActivity");
startActivity(intent);
}
});
但是,当我运行应用程序时,根据logcat,我看到以下错误:
11-18 10:09:28.933:E/AndroidRuntime(2237):未捕获处理程序:由于未捕获异常而退出主线程
11-18 10:09:29.022:E/AndroidRuntime(2237):android.content.ActivityNotFoundException:未找到处理意图的活动{act=com.in.test.MainActivity}
11-18 10:09:29.022:E/AndroidRuntime(2237):在android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1484)
.
.
我的问题在哪里?
谢谢
更新:
在清单文件中,我在应用程序元素中添加了这一行:
<activity
android:name="com.in.test.MainActivity" />
但结果仍然是一样的。我将尝试遵循您的建议(使用意图过滤器)。您不能从Eclipse执行此操作。需要安装test.apk,它需要导出所需的活动,并为其提供一个意图过滤器。比如:
<intent-filter>
<action android:name="com.infindo.test.MainActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
如果您有权访问test.apk的源代码,请修改它。如果没有,则只能使用它导出的活动/意图 要以明确的意图启动活动(通过在构造函数中使用activity类),必须在应用程序的清单中声明该活动,并且必须将其纳入应用程序中。您不能为此使用单独的apk文件
实现此目的的方法是为test.apk中的活动声明一个意图过滤器,并使用适当的意图启动它。有关如何操作的更多信息,请参阅本课程的指南主题和文档。谢谢Ted。在我的情况下,我可以访问测试项目的代码。但在将来,我没有访问权限。如何在应用程序中编译测试项目。是否有任何参考资料?再次感谢。如果您只想从另一个应用程序启动一个应用程序,请查看中的答案。因为您知道目标应用程序的详细信息,所以可以跳过一些步骤(例如,查找包名)。谢谢Nikolay。我认为对于使用意图过滤器,我的第一个项目应该首先安装在手机上。之后,我必须安装包装项目。然后调用测试项目。但我不想要这个。我希望测试项目成为包装项目的一部分。我没有访问测试代码的权限,因此我想包装它。并在需要时运行它。您需要将其转换为库项目,以便将其包含在其他项目中。