В мой проект приложения для Android я добавил модуль, который содержит операцию «SampleDataMenuActivity». Для этого нет ничего особенного - он добавляется в диалоговом окне «Новый модуль» -> «Android-библиотека» в Android Studio и включает код «Hello World», созданный Android Studio.Не удается запустить в Android-библиотеке модуль
AndroidManifest.xml приложения включает в себя (от модуля):
<activity
android:name="com.sample.sampledata.SampleDataMenuActivity" >
<intent-filter>
<action android:name="android.intent.action.SampleDataMenuActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
В build.gradle части приложения:
dependencies {
(...)
compile project(':sampledata')
}
В settings.gradle проекта:
include ':sampledata', ':app'
в основной деятельности моего приложения, я хочу, чтобы перейти к деятельности в модуле с помощью:
startActivity(new Intent("com.sample.sampledata.SampleDataMenuActivity"));
Проект строит просто отлично, но когда я нажимаю кнопку, которая должна взять меня к деятельности в модуле он терпит неудачу, сообщая:
android.content.ActivityNoFoundException: No Activity found to handle Intent (act=com.sample.sampledata.SampleDataMenuActivity)
Что я пропустил?
Почему <действие андроида: имя = «com.sample.sampledata.SampleDataMenuActivity» /> в <намерении-фильтр>? Просто любопытно. Я вроде бы хочу сделать то же самое. – hadez30
Наверняка есть более квалифицированные люди, чтобы ответить на это, но я дам ему попробовать: при запуске деятельности с использованием 'startActivity (новый Intent (« ») приложение ищет намерение, соответствующее имени действия, а затем запускает Соответствующая деятельность. Для запуска деятельности вы можете дать ей любое имя, которое хотите, но, насколько я понимаю, использование полного пути класса активности считается хорошей практикой и делает ваш код более читабельным и поддерживаемым. –
jerry
Отлично, спасибо! Это имеет смысл. :) – hadez30