【问题标题】:"Unresolved class" error in in AndroidManifest.xmlAndroidManifest.xml 中的“未解析的类”错误
【发布时间】:2017-05-30 12:03:56
【问题描述】:

我的清单 xml 文件中出现错误:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.shaikhaalothman.playsongservice">

    <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">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        <service
            android:name=".PlaySongService"
            android:enabled="true"
            android:exported="true"></service>
    </application>

</manifest>

它在这一行给了我一个错误:

 android:name=".PlaySongService"

错误显示:

未解决的类“PlaySongService”

验证 Android XML 文件中的资源引用。

我在 Stackoverflow 和其他地方没有找到任何有助于解决我的错误的方法。有谁知道我做错了什么?

【问题讨论】:

  • 你的项目中有没有.PlaySongService类
  • 尝试清理您的项目。 (假设 .PlaySongService 类在您的项目中,如 Nilesh 所述)
  • PlaySongService 的包是什么?应该是com.example.shaikhaalothman.playsongservice,否则找不到类。
  • 请出示您的PlaySongService.java
  • com.example.shaikhaalothman.playsongservice 包中是否提供 PlaySongService?

标签: android xml


【解决方案1】:

PlaySongService.javaMainActivity.java放在同一个包中,命名为com.example.shaikhaalothman.playsongservice。它会自动解决。

【讨论】:

  • 我知道这是一个旧线程,但如果它之前工作正常,那么在您进行任何更改之前,请重新启动 Android Studio。我遇到了同样的问题,没有一个答案会起作用,这让我发疯了,所以我撤销了我为在我的分支中“修复”它所做的所有更改,然后重新启动了 android studio,“错误”消失了。
【解决方案2】:

唯一对我有用的是File &gt; Invalidate Caches / Restart

【讨论】:

    【解决方案3】:

    虽然这是一个较旧的线程,但我想如果它对任何人都有帮助,我会包括解决此问题的步骤:

    1. 验证模块 build.gradle 文件中的 applicationId "com.domain.packagename" 行是否输入了正确的域名。
    2. 确保此域名与您的 java 文件夹下的软件包名称匹配。一个简单的更新方法是转到“项目”窗格右上角的设置齿轮,如果不是,请取消选中“隐藏空中间包”,然后右键单击重构 - 使用您的域名重命名文件夹。
    3. 最后,确保在清单文件顶部的包标记中也正确输入了此域名。

    我的问题是java下的目录有错误的包名,所以我不得不更改它以匹配gradle和manifest文件。

    【讨论】:

      【解决方案4】:

      您必须在“build.gradle”文件中包含路径。 我有同样的问题,如链接中的图片所示: Unresolved class

      在你的编辑器中打开“build.gradle”文件,并在依赖项中添加一个路径行,如下所示: 依赖{ 实施项目(路径:':theClassPathGoesHere')}

      【讨论】:

        【解决方案5】:

        就我而言,上述解决方案均无效,因为我已经检查了包名称等是否正确。

        所以我采用了将我的活动与 Android Studio 生成的新活动进行比较的方法。我在 Android Studio 3.1.3 上。我选择了 File > New Activity > Basic Activity,我发现的第一件事是它默认的包名称是红色的。

        我检查了一下,果然我的模块级 build.gradle 文件中的 applicationId 不等于我现有活动的包名称。我纠正了这一点,但它并没有使错误消失。

        所以,我完成了生成基本活动的过程,以确保我没有收到Unresolved class 错误。正如我所料,Android Studio 生成的 AndroidManifest.xml 条目没有错误。与此同时,我现有的活动继续出现错误。因此,我将现有活动与生成的活动进行了比较。我发现我的活动扩展了Activity 类,而生成的活动扩展了AppCompatActivity。所以我尝试从Activity 更改为AppCompatActivity。这产生了一堆我不想处理的错误,所以我将它们从AppCompatActivity 改回Activity。突然间,Android Studio 不再警告我任何 Unresolved class 错误。

        我不确定到底发生了什么。我想可能是我的.idea 目录中的某些内容已损坏,但是将其清除并重新导入并不能解决问题。

        总之,似乎消除Unresolved class 错误的方法是:将活动的java 文件从扩展Activity 更改为扩展AppCompatActivity,然后将其改回Activity。这为我解决了错误。

        【讨论】:

        • 嘿,谢谢。我的一开始是AppCompatActivity,所以我改成Activity改回AppCompatActivity,和你的方法差不多。
        【解决方案6】:

        在 android:name="____" 的 android 清单文件中,我的包名错误 所以从 package:"____" 中声明的清单文件顶部复制我的包名 解决了我的错误

        【讨论】:

          【解决方案7】:

          使用 Shift+F6 将 AndroidManifest.xml 中的包从“com.example.loa”重命名为“com.example1.loa”...然后将包从“com.example1.loa”反向重命名为“com.example .loa" ...这将解决问题,因为Android Studio将用新名称重建项目,然后将用旧名称重建项目...

          【讨论】:

            【解决方案8】:

            您应该在 java 活动中检查您的包。 清除包名并根据你的项目重写。 示例 - 包 com.app.gmail

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-06-04
              • 2021-05-16
              • 1970-01-01
              • 2020-12-05
              • 1970-01-01
              • 2011-10-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多