Android,我如何在我的应用程序中使用外部APK?

Android,我如何在我的应用程序中使用外部APK?,android,jar,external,apk,Android,Jar,External,Apk,我创建了两个项目。第一个,提取手机信息并显示在屏幕上。我有这个项目的.apk文件(例如test.apk) 然后我创建了第二个项目。这一个有一个按钮在屏幕上,我想当我点击按钮,第一个项目运行(显示手机信息)。通过右键单击项目根目录>构建路径>配置构建路径>添加外部JAR>test.apk,我已将test.apk添加到此项目中 然后在代码中,我使用intent调用了它。这是我的代码: btn.setOnClickListener(new OnClickListener() {

我创建了两个项目。第一个,提取手机信息并显示在屏幕上。我有这个项目的.apk文件(例如test.apk

然后我创建了第二个项目。这一个有一个按钮在屏幕上,我想当我点击按钮,第一个项目运行(显示手机信息)。通过右键单击项目根目录>构建路径>配置构建路径>添加外部JAR>test.apk,我已将test.apk添加到此项目中

然后在代码中,我使用intent调用了它。这是我的代码:

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。我认为对于使用意图过滤器,我的第一个项目应该首先安装在手机上。之后,我必须安装包装项目。然后调用测试项目。但我不想要这个。我希望测试项目成为包装项目的一部分。我没有访问测试代码的权限,因此我想包装它。并在需要时运行它。您需要将其转换为库项目,以便将其包含在其他项目中。