如何在Android中调用jar文件中的活动?

时间:2013-06-18 10:06:38

标签: android android-intent

请帮我解决如何从android中的jar文件调用活动:

我的步骤:

  • 我有一个带有MainActivity.java的AndroidLibrary项目

  • 我有一个带有SplashActivity.java的AndroidApp项目。

  • 我将AndroidLibrary.jar导入AndroidApp项目的libs文件夹并添加了构建路径
  • 我在AndroidApp项目的AndroidManifest.xml文件中添加了路径MainActivity.java
  • 在SplashActivity.java类中,我使用这样的代码从AndroidLibrary.jar调用MainActivity.java

    Intent intent = new Intent(SplashActivity.this, MainActivity.class);
    startActivity(intent);
    

但是,当我从jar文件调用一个活动时,它会立即失败并出现ClassNotFound异常。

4 个答案:

答案 0 :(得分:3)

要从外部.jar调用一个Activity,您需要:

  1. 创建意图
  2. 使用两个字符串参数调用setClassName:包含您的类的包,以及您需要调用的类的完整路径
  3. 开始活动。
  4. 例如:

    final Intent it = new Intent();
    it.setClassName("com.example.test", "com.example.test.NameOfYourActivity");
    startActivity(it);
    

    如果您想知道如何将Java字节码转换为Dalvik字节码,请访问my blog

    感谢。

答案 1 :(得分:0)

Alernate代码片段

final Intent it = new Intent(android.content.Intent.ACTION_VIEW);
it.setClassName(getApplicationContext(), "<complete path of the Activity class>");
startActivity(it);

答案 2 :(得分:0)

另一个新项目中的Android Calling Library活动

Intent callIntent = new Intent(MainActivity.this, com.example.testinglib.Testing.class);
startActivityForResult(callIntent, 0);

注意: startActivity(intent);无效。

答案 3 :(得分:0)

按照步骤

  • 创建一个意图。
  • 使用两个String参数调用setClassName:包 包含您的类,以及您的类的完整路径 需要打电话。

  • 开始活动。

那就是它。