Невозможно запустить новое намерение с помощью setClassName с другим пакетом в Android

Я хочу динамически запустить новый Intent. Поэтому setClassNameкажется лучшим выбором.

Во-первых, я определяю 3 действия в манифесте

<activity android:name="com.example.pkg2.Act" />
<activity android:name="com.example.pkg1.Act1" />
<activity android:name="com.example.pkg1.Act2" />

From com.example.pkg2.Act:

Intent intent = new Intent();
if(index == 0) intent.setClassName(Act.this, "com.example.pkg1.Act1");
else intent.setClassName(Act.this, "com.example.pkg1.Act2");
startActivity(intent);

И получаю это исключение:

Unable to find explicit activity class {com.example.pkg2.Act/com.example.pkg1.Act1}; have you declared this activity in your AndroidManifest.xml?

Похоже, мы можем использовать только setClassNameдля динамического запуска новой активности, но в том же пакете.

Есть идеи, как решить эту проблему? Вся помощь приветствуется.

10
задан anticafe 29 March 2012 в 11:02
поделиться