【问题标题】:App crashes (parentActivityName)应用程序崩溃(parentActivityName)
【发布时间】:2016-10-09 00:45:07
【问题描述】:

我在操作栏中的箭头返回按钮有问题,修改 AndroidManifest.xml。标签 parentActivityName 与前 2 个活动一起工作,但是当我尝试返回最新的活动时,应用程序崩溃了。这是我的清单文件。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<application
    android:allowBackup="true"
    android:icon="@mipmap/lupa"
    android:label="Movement Control"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Actividad"
        android:label="Panel Principal"
        android:parentActivityName=".EspMain">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".EspMain" />
    </activity>
    <activity
        android:name=".InfoPaciente"
        android:label="Informacion del paciente"
        android:parentActivityName=".Actividad">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".Actividad" />
    </activity>
    <activity
        android:name=".Telefono"
        android:label="Telefono del cuidador"
        android:parentActivityName=".Actividad">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".Actividad" />
    </activity>
    <activity
        android:name=".Monitor"
        android:label="Monitor de Movimientos"
        android:parentActivityName=".Actividad">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".Actividad" />
    </activity>
    <activity
        android:name=".EspMain"
        android:label="Inicio de sesion"
        android:parentActivityName=".MainActivity">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
    </activity>
    <activity
        android:name=".EngMain"
        android:label="Login"
        android:parentActivityName=".MainActivity">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".MainActivity" />
    </activity>
    <activity
        android:name=".PrincipalEng"
        android:label="Main panel"
        android:parentActivityName=".EngMain">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".EngMain" />
    </activity>
    <activity
        android:name=".PatientInfo"
        android:label="Patient information"
        android:parentActivityName=".PrincipalEng">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".PrincipalEng" />
    </activity>
    <activity
        android:name=".NursePhone"
        android:label="Nurse phone"
        android:parentActivityName=".PrincipalEng">
        <meta-data
            android:name="android.support.PrincipalEng"
            android:value=".PrincipalEng" />
    </activity>
    <activity
        android:name=".EngMonitor"
        android:label="Movement monitor"
        android:parentActivityName=".PrincipalEng">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".PrincipalEng" />
    </activity>
    <activity
        android:name=".Registro"
        android:label="Registro"
        android:parentActivityName=".EspMain"></activity>
    <activity
        android:name=".Register"
        android:label="Register"
        android:parentActivityName=".EngMain">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.pabli.myapplication.EngMain" />
    </activity>
</application>

我对 Telefono、InfoPaciente、Monitor 等活动有疑问。

应用程序如下所示 MainActivity > EspMain > Actividad > Telefono/InfoPaciente/Monitor

提前致谢。

【问题讨论】:

  • 你能发布你的 android logcat 吗?

标签: android xml android-studio android-activity parent


【解决方案1】:
   <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

仅将此代码用于您的主要活动。删除其他。

【讨论】:

  • 我更新了我的代码,但它仍然不起作用......我不明白为什么它只在最新的活动中崩溃。
  • 你上次活动的名称是什么?
  • Telefono 是最后的活动之一,我遇到了问题。树的最后活动以及我遇到问题的地方是 Telefono、InfoPaciente、Monitor
【解决方案2】:

如果你愿意的话,你声明的 MAIN 太多了。

<intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

从除 MainActivity 之外的所有代码中删除该代码,您就应该开始工作了。

【讨论】:

  • 我更新了我的代码,但它仍然不起作用......我不明白为什么它只在最新的活动中崩溃。
【解决方案3】:

你已经放了

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

在您的所有活动中。这就是 crash 的原因。

因此,仅将这些意图过滤器放在您的 Launcher Activity 中,在您的情况下,它可能是主要活动。

了解更多

Intents and Intent Filters

intent-filter

【讨论】:

  • OP在所有活动中都没有category.LAUNCHER! “在 android 中只有一个活动可以是启动器活动”,不幸的是,这不是真的。如果你愿意,你可以拥有 300 个。
【解决方案4】:

不要使用.NameOfActivity,而是改为:

android:parentActivityName="com.yourPackageName.app.EspMain" >

在您所有的Acitvities 中,您正在使用parentActivityName

我在 5.0 版本中也遇到了类似的问题,我忘了为每个 Activity 添加这个

<meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.packagename.app.YOUR_PARENT_ACTIVITY" />

【讨论】:

  • 仅供参考:“.NameOfActivity”处的点,这是包名称的缩写形式。拥有 MAIN 和 DEFAULT,可能有 OP 的原因。如果有 11 个 LAUNCHER 类别,我只会感到恼火。 (编辑:我没有投反对票,)
  • 我遇到了广播接收器等问题,我做到了,它解决了我的问题,也许它也解决了问题,顺便说一下,谁对我投了反对票,请随时向我解释原因,谢谢: )
  • @JacksOnF1re 更新了问题,你是对的......这是一个错误:V
猜你喜欢
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 2013-02-03
  • 2011-01-01
  • 2012-03-30
  • 2011-06-20
  • 2013-08-18
  • 2011-06-25
相关资源
最近更新 更多