从外部dex/jar加载活动



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

这个链接指的是从Second Dex加载类,这在上运行良好

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

我还尝试使用PathClassLoader,它也显示了相同的错误

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

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

提前感谢

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

还要确保活动的布局文件在那里。

示例:我计划从我的应用程序将TestActivity加载到库jar文件中。

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:activity.xml和activitytest.xml都应该位于应用程序的layout文件夹中。

需要在Manifestfile中提到TestActivity。

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

最新更新