2013-05-01 15 views
5

Son bölümdeki tüm adımları (Starting Another Activity) yapmıştım ve mesajı ikinci etkinlikte görüntüledim ancak yukarı düğmesi aşağıdaki istisnayı atar, tüm hata bölümünü LogCat penceresinden ekledim.Yukarı düğmesi neden 'İlk Uygulamanızın Oluşturulması' Android eğitimine bir istisna neden oluyor

Ben 'kötü parentActivityName' ya online arama denedim ama eğitim ile ilgili herhangi bir açık bilgi veya bir şey bulamadık 'bir ebeveyn etkinlik adı belirtilen yoktur'.

E/Activity(17099): getParentActivityIntent: bad parentActivityName 'com.example.myfirstapp.MainActivity' in manifest 
E/NavUtils(17099): getParentActivityIntent: bad parentActivityName 'com.example.myfirstapp.MainActivity' in manifest 
D/AndroidRuntime(17099): Shutting down VM 
E/AndroidRuntime(17099): FATAL EXCEPTION: main 
E/AndroidRuntime(17099): java.lang.IllegalArgumentException: Activity DisplayMessageActivity 
    does not have a parent activity name specified. (Did you forget to add the 
    android.support.PARENT_ACTIVITY <meta-data> element in your manifest?) 

E/AndroidRuntime(17099): at android.support.v4.app.NavUtils.navigateUpFromSameTask(NavUtils.java:177) 
E/AndroidRuntime(17099): at com.example.myfirstname.DisplayMessageActivity.onOptionsItemSelected(DisplayMessageActivity.java:55) 
E/AndroidRuntime(17099): at android.app.Activity.onMenuItemSelected(Activity.java:2548) 
E/AndroidRuntime(17099): at com.android.internal.widget.ActionBarView$3.onClick(ActionBarView.java:167) 
E/AndroidRuntime(17099): at android.view.View.performClick(View.java:4204) 
E/AndroidRuntime(17099): at android.view.View$PerformClick.run(View.java:17355) 
E/AndroidRuntime(17099): at android.os.Handler.handleCallback(Handler.java:725) 
E/AndroidRuntime(17099): at android.os.Handler.dispatchMessage(Handler.java:92) 
E/AndroidRuntime(17099): at android.os.Looper.loop(Looper.java:137) 
E/AndroidRuntime(17099): at android.app.ActivityThread.main(ActivityThread.java:5041) 
E/AndroidRuntime(17099): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(17099): at java.lang.reflect.Method.invoke(Method.java:511) 
E/AndroidRuntime(17099): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
E/AndroidRuntime(17099): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
E/AndroidRuntime(17099): at dalvik.system.NativeStart.main(Native Method) 

cevap

6

Basit bir hata yaptığımı fark ettim, ad alanı yanlıştı.

eğitim Kullanıldı: kullandığım Ne com.example.myfirstapp : com.example.myfirstname

Nedense ben kopyalanan zaman bu kadar eğitime farklı bir isim kullanmış ve son bölümü yapıştırılan etmişti Orijinal adı dahil. Ben hata mesajını biraz daha dikkatli okumalıydım ve hatamı anlamalıydım.

'' bölümü 'android.support.PARENT_ACTIVITY' eklemeyi unuttuysanız, bu bölümün dahil edilmesinden sonra beni sadece yanlış ad alanı kullanıyordu.

+0

Sadece kendi hatam olsa da, eğitimde bir başkasının aynı şeyi yapmaları halinde yardımcı olabileceğini düşündüm. Bence ilk defa kendi sorumu cevaplamaya çalıştım, umarım doğru yapmışımdır. – Kioshiki

+0

3 aktivitem var A1 => A2 (ana A1) => A3 (ana A2). Android 2.3 kullanırsam, A3 etkinliği, ebeveyn etkinliğinin üst öğelerini ayıklamaya çalışan NatUtils'i çağırdığında bir kilitlenme olur. – Rusfearuth

8

Aynı sorunu yaşıyorum. Benim problemim farklıydı. AndroidStudio IDE iletişim kutusunda tam ad alanı olmadan ParentActivity değerini belirledim. Doğal olarak AndroidStudio, AndroidManifest.xml dosyasında tam olarak tanımlanmış bir Sınıf bulunmayan bir bölüm oluşturdu. Bildiri dosyasının başlığında paket doğru ve maçları ise

1) kontrol edin: istisna bu tür bu üç adımı uygulayın varsa xml etiketi

<meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="____._____.MainActivity"/> 
</activity> 
1

tam ad belirterek elle değişti projenizin paket ismiyle ilgili:

<manifest package="com.my.project" ...> 

2) (applicationIDeğer build.gradle yılında Mo kontrol dule: app) doğru olduğundan ve projenizin paket ismiyle ilgili eşleşir: Ana Etkinliğin değeri doğru yazılır: android eğer

defaultConfig { 
    applicationId "com.my.project" 
    ... 
} 

3) kontrol edin.

<meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="._____.MainActivity"/> 
</activity> 

Eğer 3. adımda tam ad yazmaya gerek kalmaz ilk iki adım, doğruysa!

İlgili konular