10

Benzer bir sorunu bildiren bir kaç iş parçacığı buldum ancak none of them gerçekten denemediğim bir şey sunuyor.ActivityNotFoundException (YES, bu etkinlik AndroidManifest.xml içinde bildirildi)

Masum böyle çağrı:

<application> 
    <activity android:name="MyActivityLib" /> 
    <activity android:name="com.example.baseapp.MyEditPreferences" android:label="@string/app_name"> 
    </activity> 
</application> 

şu istisna tetikler: AndroidManifest.xml aşağıdaki

mActivity.startActivity(new Intent(mActivity, MyEditPreferences.class)); 

06-14 14:06:50.297: ERROR/AndroidRuntime(9272): 
android.content.ActivityNotFoundException: Unable to find explicit activity class 
{com.example.baseapp.paypal/com.example.baseapp.MyEditPreferences}; 
have you declared this activity in your AndroidManifest.xml? 

şeydir, kullanılan bu kod Ben bir monolitik uygulama projeden 2 parçalı bir projeye değiştirmeden önce kusursuz bir şekilde çalışmak Kütüphane Projesi ve Uygulama Projesi'nden oluşmaktadır.

AndroidManifest.xml, kitaplığında projesindendir.

Bu ActivityNotFoundException'u ortadan kaldırmak için ne yapmam gerekiyor?

+1

Whats com.example.baseapp.paypal ?? Bazı paypal kütüphanesi kullanıyor musunuz? –

+0

@Ravi Vyas Evet, öyleyim. Bu, monolitik uygulama projesini 2 bölümlük bir projeye ayırmamın ana sebebi: tüm Android pazarları için ortak olan kütüphane ve her bir Android pazarına veya uygulama mağazasına özelleştirilmiş küçük bir uygulama projesi (kitaplık etkinlik sınıfından türetilen etkinlik sınıfı ile) .Bir şey fark ettin mi? – an00b

+0

Farklı bir pakette olduğu gibi bir sınıfı aramak için bir amaç yaratacağınıza inanmıyorum. – Maximus

cevap

14

Sadece sorunu çözdüm.

yapmam gereken tek şey

için FQN eklemek oldu Uygulama proje en AndroidManifest.xml:

<activity android:name="com.example.baseapp.MyEditPreferences" 
      android:label="com.example.baseapp.MyActivityLib:string/app_name"> 
</activity> 

Aslında, Kütüphane proje en AndroidManifest.xml tamamen MyEditPreferences herhangi bir başvuru kaldırıldı ve hala çalışıyor.

Ayrıca orijinal startActivity 1 satır deyimi ile çalışır:

mActivity.startActivity(new Intent(mActivity, MyEditPreferences.class)); 

Sonuç: Her şey önemli uygulamanın AndroidManifest.xml değil kitaplığın.

+2

Dokümanlardaki gibi yazıyor. –

+1

Dokümanlarda nerede yazıyor? Bir bağlantı sağlayabilir misiniz? –

+0

Burada yazılmıştır: http://developer.android.com/tools/projects/projects-eclipse.html – user1324936

1

Belki bu işe yarayacak?

Intent mIntent = new Intent(); 
mIntent.setClassName(mActivity, "com.example.baseapp.MyEditPreferences"); 
mActivity.startActivity(mIntent); 
+0

Öneri için +1 ve +1. Sadece denedim ve yardımcı olmadı. Ayrıca inanılmaz derecede benzer bir sorunu açıklayan bir konu da buldum: http://stackoverflow.com/questions/5363548/activitynotfound-exception-thrown-for-a-preferenceactivity-listed-in-the-manifest/5363603#5363603 FQN yaklaşımı işe yaradı Onu, ama benim için problemi çözmedim. Başka fikirlerin var mı? – an00b

-1

Bunun çok eski bir iş parçacığı olduğunu biliyorum, ancak aynı sorunu yaşıyorum. Benim durumumda ben yapmak zorunda tüm isimler bir android paketine dahil sınıfları kullanırsanız bir sahte

import java.util.prefs.Preferences; 
0

silmek oldu (Ayarlar, Tercihler, Aktivite, ...), bunu koymak gerekir : Eğer "name_of_your_package" koymazsanız

Intent i = new Intent(this, <name_of_your_package>.classname.class); 

, derleyici android pakette sınıfına atıfta olduğunu düşünecek (android *.).

-2

Sadece manifestinize IDE'nizin işaret etmediği hataları kontrol edin.

İlgili konular