1

请帮助我如何从 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

4 回答 4

3

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

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

例如:

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

如果您想知道如何将 Java 字节码转换为 Dalvik 字节码,请访问我的博客

谢谢。

于 2013-08-15T12:46:56.963 回答
0

有效的备用代码

final Intent it = new Intent(android.content.Intent.ACTION_VIEW);
it.setClassName(getApplicationContext(), "<complete path of the Activity class>");
startActivity(it);
于 2014-03-28T05:14:14.490 回答
0

按照步骤,

  • 创建一个意图。
  • 使用两个字符串参数调用 setClassName:包含您的类的包,以及您需要调用的类的整个路径。

  • 开始活动。

而已。

于 2015-09-30T05:29:45.317 回答
0

另一个新项目中的 Android 调用库活动

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

注意: startActivity(intent);不工作。

于 2015-09-30T05:04:14.437 回答