2014-11-17 2 views
14

В мой проект приложения для 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) 

Что я пропустил?

ответ

7

Я нашел ошибку, и, возможно, я должен удалить вопрос. Но, как это было upvoted, Сомон еще может быть заинтересован в этом ответе:

манифеста должен заявить:

<activity 
    android:name="com.sample.sampledata.SampleDataMenuActivity" > 
    <intent-filter> 
     <action android:name="com.sample.sampledata.SampleDataMenuActivity" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 
+0

Почему <действие андроида: имя = «com.sample.sampledata.SampleDataMenuActivity» /> в <намерении-фильтр>? Просто любопытно. Я вроде бы хочу сделать то же самое. – hadez30

+1

Наверняка есть более квалифицированные люди, чтобы ответить на это, но я дам ему попробовать: при запуске деятельности с использованием 'startActivity (новый Intent (« ») приложение ищет намерение, соответствующее имени действия, а затем запускает Соответствующая деятельность. Для запуска деятельности вы можете дать ей любое имя, которое хотите, но, насколько я понимаю, использование полного пути класса активности считается хорошей практикой и делает ваш код более читабельным и поддерживаемым. – jerry

+0

Отлично, спасибо! Это имеет смысл. :) – hadez30

Смежные вопросы