2014-11-17 15 views
14

Android uygulama projem için "SampleDataMenuActivity" adlı bir etkinlik içeren bir modül ekledim. Bu etkinliğe özel bir şey yok - Android Studio'da "Yeni Modül" -> "Android Kitaplığı" iletişim kutusunu kullanarak eklendi ve Android Studio tarafından oluşturulan "Merhaba Dünya" kodunu içerir. uygulamanınAndroid Kitaplığı Modülü Etkinliği Başlatılamıyor

AndroidManifest.xml (modülden) aşağıdakileri içerir: proje settings.gradle olarak

dependencies { 
    (...) 
    compile project(':sampledata') 
} 

: app build.gradle olarak

<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> 

: benim app ana aktivitede

include ':sampledata', ':app' 

, kullanıyorum modülünde bir etkinliğe gitmek istiyorum:

startActivity(new Intent("com.sample.sampledata.SampleDataMenuActivity")); 

proje gayet oluşturur, ama ben raporlama, başarısız modülünde etkinliğe beni almalı düğmesine dokunun zaman:

android.content.ActivityNoFoundException: No Activity found to handle Intent (act=com.sample.sampledata.SampleDataMenuActivity) 

Ne kaçırdım?

cevap

7

Hatayı buldum ve belki de sorunu kaldırmalıyım.

tezahür belirtmelidir:

<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

neden olduğu o upvoted gibi Ancak, somone başka bu cevap ilginizi çekebilir ? Sadece merak. Ben de aynı şeyi yapmak istiyorum. – hadez30

+1

Muhtemelen bu soruları yanıtlamak için daha nitelikli kişiler var ancak bunu denemeliyim: StartActivity (yeni Intent ("") 'işlevini kullanarak bir etkinlik başlatırken, uygulama eylem adıyla eşleşen bir amaç arar ve daha sonra başlatır. Bir aktivite başlatmak için, istediğiniz herhangi bir isim verebilir, ancak benim için, etkinlik sınıfının tam yolunu kullanarak iyi bir uygulama olarak kabul edilir ve kodunuzu daha okunabilir ve sürdürülebilir kılar .. – jerry

+0

Harika, teşekkürler! Bu mantıklı. :) – hadez30