0

Я уже читал «похожие вопросы», но я все еще не могу запустить проект «Проект библиотеки» из главного проекта.Android: Запуск функции библиотеки из основного приложения

У меня есть проект A (Main) и у меня есть проект B (библиотека)

активность объявлена ​​в библиотеке манифесте (даже в главном манифеста)

, но когда я запускаю код журнал бросает ошибка, запрашивающая, объявлена ​​ли активность в файле manifest.xml.

Основной проект по праву, включая библиотеку, все компилируется, но ошибка в том, что я положил намерение я пытаюсь от основного проекта:

Intent intent = new Intent(); 
intent.setComponent(new ComponentName("com.package.activities", "MyActivity")); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.setPackage(context.getPackageName()); // tried without this 
context.startActivity(intent); 

это мой манифест (из библиотеки проекта):

<activity 
     android:name="com.package.activities.MyActivity" 
     android:exported="true" 
     android:label="@string/title_activity" 
     android:screenOrientation="landscape" 
     android:configChanges="keyboardHidden|orientation"/> 

Вход:

android.content.ActivityNotFoundException: Не удается найти явную активность гр lass {com.package.activities/MyActivity}; Вы объявили эту активность в своем AndroidManifest.xml?

+0

попробовать intent.setComponent (новый ComponentName ("com.package.activities", "com.package.activities.MyActivity")); – Devrim

+0

Я собираюсь попробовать и я комментирую –

+0

такой же результат с этим –

ответ

0

Дайте этому попытку:

Intent intent = new Intent(context, MyActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(intent); 
+0

это не разрешено, когда я использую этот код, компиляция не работает «Не удается разрешить символ «MyActivity», когда я использую быстрое исправление из Android Studio (Alt + Enter): «Добавить зависимость ...» (я нажал эту опцию, но ничего не происходит) и «Переместите MyActivity из модуля (библиотеки) в (main)», но это не желание. Нам нужно сохранить активность в библиотеке. –

+1

Похоже, что ваш проект библиотеки не будет правильно включен в основной проект. Можете ли вы вставить копию файла app/build.gradle? – dfinn

+0

Вы правы, проект не включен правильно, потому что он пытается построить с помощью gradle-experimental в основном проекте с стабильной степенью градации. Похоже, что оба они не являются совместимыми. и Gradle (стабильный) не могут присоединить модуль с Gradle (экспериментальный). –

0

При попытке запустить свою деятельность в качестве отдельного компонента, Android начинает искать для этой библиотечной деятельности в рамках основного кода проекта. Поскольку деятельность принадлежит библиотеке, а не основному проекту, вы получаете ActivityNotFoundException.

Учитывая, что вы добавили проект библиотеки в качестве файла AAR в основной проект, вы можете просто запустить деятельность библиотеки из основного проекта следующим образом:

Intent intent=new Intent(this, "your.library.package.activityname.class") 
startActivity(intent) 

Вы должны объявить деятельность библиотеки в файл манифеста вашего основного проекта. Одна линия должно хватить

<application ...> 
    <activity android:name="your.library.package.activityname" /> 
</application> 
Смежные вопросы