【问题标题】:ActivityNotFoundException due to wrong namespace?ActivityNotFoundException 由于错误的命名空间?
【发布时间】:2013-03-21 06:29:17
【问题描述】:

我想开始这样的活动:

Intent intent = new Intent(this, FeedbackActivity.class);
activity.startActivity(intent);

在我的清单中我已经声明了这个活动:

<activity
        android:name=".FeedbackActivity"
        android:parentActivityName="de.fun4mobile.jumba.GameActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="de.fun4mobile.jumba.GameActivitry" />
    </activity>

我仍然得到上面提到的 ActivityNotFoundException:

找不到明确的活动类 {de.fun4mobile.jumba/de.fun4mobile.jumba.FeedbackActivity};你 在你的 AndroidManifest.xml 中声明了这个活动?

很明显,活动的路径/命名空间在某种程度上是错误的(重复)。但为什么会这样呢?我的清单中有错误吗?

【问题讨论】:

  • FeedbackActivity 和 de.fun4mobile.jumba 一样在同一个包中?
  • 在 Manifestfile 中使用活动名称之前提及 packageName。

标签: java android exception android-activity


【解决方案1】:
android:value="de.fun4mobile.jumba.GameActivitry"

GameActivitry 不是错字吗?

【讨论】:

  • 是的。事实证明,由于这个拼写错误,XML 的整个部分都是无效的,因此 Android 无法识别。因此,略带误导性的错误消息“无法找到明确的活动类”。
【解决方案2】:

检查你的src包名是否与manifest中提到的包名相同。只有这样.FeedbackActivity 才会起作用。否则,您必须编写整个路径,例如src_package.filename

例如

如果你的 src 包名是 com.example 并且你的文件名是 A 并且你的清单包名也是 com.example 那么android:name=.A 就可以了。

但是说你的清单包是 com.example2 那么你必须写

android:name=com.example.A

【讨论】:

    【解决方案3】:
    <activity android:name=".FeedbackActivity">
        <!-- ... -->
    </activity>
    

    在清单中尝试这么多,然后我想我们可以知道这是否有任何问题。

    【讨论】:

    • @rekire 好的,但如果你能指出那个错误,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 2016-07-01
    • 2014-05-09
    • 2016-09-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    • 2012-05-01
    相关资源
    最近更新 更多