Android 为什么向上按钮会导致';构建您的第一个应用程序&x27;安卓培训

Android 为什么向上按钮会导致';构建您的第一个应用程序&x27;安卓培训,android,Android,我已经完成了最后一部分()中的所有步骤,它确实在第二个活动中显示了消息,但是当我单击“向上”按钮时,它会抛出下面的异常,我已经包含了LogCat窗口中的整个错误部分 我已尝试在线搜索“错误的parentActivityName”或“未指定父活动名称””,但找不到任何明确信息或与培训相关的任何内容 E/Activity(17099): getParentActivityIntent: bad parentActivityName 'com.example.myfirstapp.MainActivi

我已经完成了最后一部分()中的所有步骤,它确实在第二个活动中显示了消息,但是当我单击“向上”按钮时,它会抛出下面的异常,我已经包含了LogCat窗口中的整个错误部分

我已尝试在线搜索“错误的parentActivityName”或“未指定父活动名称””,但找不到任何明确信息或与培训相关的任何内容

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)
E/Activity(17099):清单中的getParentActivityIntent:bad parentActivityName'com.example.myfirstapp.MainActivity'
E/NavUtils(17099):getParentActivityIntent:清单中的错误parentActivityName'com.example.myfirstapp.MainActivity'
D/AndroidRuntime(17099):关闭虚拟机
E/AndroidRuntime(17099):致命异常:主
E/AndroidRuntime(17099):java.lang.IllegalArgumentException:Activity DisplayMessageActivity
没有指定父活动名称。(你忘了添加
android.support.PARENT(清单中的活动元素?)
E/AndroidRuntime(17099):位于android.support.v4.app.NavUtils.navigateUpFromSameTask(NavUtils.java:177)
E/AndroidRuntime(17099):在com.example.myfirstname.DisplayMessageActivity.onOptionsItemSelected(DisplayMessageActivity.java:55)
E/AndroidRuntime(17099):位于android.app.Activity.onMenuItemSelected(Activity.java:2548)
E/AndroidRuntime(17099):位于com.android.internal.widget.ActionBarView$3.onClick(ActionBarView.java:167)
E/AndroidRuntime(17099):在android.view.view.performClick(view.java:4204)上
E/AndroidRuntime(17099):在android.view.view$PerformClick.run(view.java:17355)
E/AndroidRuntime(17099):位于android.os.Handler.handleCallback(Handler.java:725)
E/AndroidRuntime(17099):位于android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(17099):位于android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(17099):位于android.app.ActivityThread.main(ActivityThread.java:5041)
E/AndroidRuntime(17099):位于java.lang.reflect.Method.Invokenactive(本机方法)
E/AndroidRuntime(17099):位于java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(17099):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime(17099):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime(17099):位于dalvik.system.NativeStart.main(本机方法)

结果是我犯了一个简单的错误,我把名称空间搞错了

用于培训:com.example.myfirstapp 我使用的:com.example.myfirstname

由于某些原因,我使用了与培训不同的名称,因此当我从最后一部分复制和粘贴时,它包含了原始名称。事后看来,我应该更仔细地阅读错误信息,我应该意识到我的错误


“你忘了添加安卓.support.PARENT_活动了吗?”这一部分让我有点不舒服,因为该部分包含了它,只是使用了错误的名称空间。

我也有同样的问题。我的问题完全不同。我在AndroidStudio IDE对话框中指定了没有完整命名空间的ParentActivity。 很自然,AndroidStudio在AndroidManifest.xml中生成了一个没有完全指定类的节。我通过在xml标记中指定完整名称空间手动更改了它

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

如果您有此类异常,请执行以下三个步骤:

1) 检查清单文件头中的是否正确,是否与项目的包命名匹配:

<manifest package="com.my.project" ...>
defaultConfig {
    applicationId "com.my.project"
    ...
}
3) 检查父活动的android:value是否正确写入

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


如果前两个步骤是正确的,那么您不需要在步骤3中编写完整的命名空间

虽然这只是我自己的错误,但我认为如果其他人碰巧也这样做的话,这可能会对他们的训练有所帮助。我想这是我第一次尝试回答我自己的问题,所以希望我做得对。我有3个活动A1=>A2(家长A1)=>A3(家长A2)。如果我使用安卓2.3,当A3活动调用NatUtils试图提取父活动的父活动时,我会崩溃。