Я хочу, чтобы начать новый Intent динамически. Поэтому setClassName
кажется лучшим выбором.Невозможно запустить новое намерение setClassName с другим пакетом в Android
Во-первых, я определяю 3 активность в Manifest
<activity android:name="com.example.pkg2.Act" />
<activity android:name="com.example.pkg1.Act1" />
<activity android:name="com.example.pkg1.Act2" />
От 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
для динамического запуска нового действия, но в рамках одного и того же пакета.
Любая идея решить эту проблему? Вся помощь приветствуется.
'<деятельность андроид: имя = "com.example.pkg1.Act1"/>' изменения aCt1 к act2 вы объявили Act1 два раз? –
Спасибо @imrankhan Это моя вина, когда copy-paste: p – anticafe
все в порядке, см. Мой обновленный ответ. –