从外部dex / jar加载活动

时间:2012-08-30 09:04:20

标签: android

http://android-developers.blogspot.in/2011/07/custom-class-loading-in-dalvik.html

此链接指的是从Second Dex加载类,这是正常的

而不是在Second Dex中调用一个简单的方法, 我试图在Second dex中添加一个活动,并尝试从我的MainActivity访问, 当我尝试使用My MainActivity中的startActivity()访问/启动活动时,我收到了Classnotfound错误

我也尝试过使用PathClassLoader - 它也显示相同的错误

我们可以从MainActivity访问/加载Second Dex中存在的Activity吗?

将活动保存在多个Dex文件中的正确方法是什么?

先谢谢

1 个答案:

答案 0 :(得分:0)

是的,您可以,您唯一需要的是在应用程序的清单文件中提及活动详细信息。

另外请确保活动的布局文件在那里。

示例:我计划在My Application中的库jar文件中加载TestActivity。

TestActivity.class(驻留在jar文件中):

public class TestActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(getIntent().getIntExtra("LAYOUT", -1));
}

}

MainActivity.class(驻留在应用程序项目中)

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);

    Intent intTest = new Intent(this, TestActivity.class);
    intTest.putExtra("LAYOUT", R.layout.activity_test);
    startActivity(intTest);
}

}

layouts:actitivity.xml和activity_test.xml都应该驻留在应用程序的布局文件夹中。

需要在Manifestfile中提及TestActivity。

<activity android:name="yourPackage.TestActivity"></activity>