Android开发点击顶部返回按钮出现bad parentActivityName错误求助
解决返回按钮报错:bad parentActivityName in manifest
首先,咱们来定位核心问题:你的MainActivity没有在AndroidManifest.xml中声明,而且错误地把DisplayMessageActivity设置成了应用的启动Activity,这就导致系统找不到parentActivityName指定的.MainActivity,从而抛出你看到的错误。
步骤1:修正AndroidManifest.xml
你需要把启动Activity的<intent-filter>移到MainActivity的声明里,同时确保MainActivity被正确注册。修正后的完整manifest代码如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.amir.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <!-- 注册MainActivity,并设置为启动页 --> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 注册DisplayMessageActivity,并指定父Activity --> <activity android:name=".DisplayMessageActivity" android:parentActivityName=".MainActivity"> <!-- 兼容API 15及以下的meta-data --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity" /> </activity> </application> </manifest>
步骤2:优化EXTRA_MESSAGE常量(可选但推荐)
你的MainActivity中定义的EXTRA_MESSAGE是com.example.myfirstapp.MESSAGE,但你的实际包名是com.example.amir.myapplication,虽然这不是当前报错的直接原因,但为了避免后续传值出现问题,建议把这个常量改成和包名一致:
public static final String EXTRA_MESSAGE = "com.example.amir.myapplication.MESSAGE";
为什么会出现这个错误?
当你设置android:parentActivityName=".MainActivity"时,系统需要在manifest中找到这个Activity的声明,但你之前的manifest里只注册了DisplayMessageActivity,还把它设成了启动页,系统找不到MainActivity的存在,就会抛出bad parentActivityName的错误。修正后,系统能找到MainActivity,返回按钮就能正常工作了。
内容的提问来源于stack exchange,提问作者Amirates
相关产品推荐
相关产品推荐

