java - Android 应用程序在尝试签署 apk 时出现 Menu Lint 错误

标签 java android android-studio lint

我的 Android 应用程序中有此菜单:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/tools"
xmlns:playtube="http://schemas.android.com/apk/res-auto">


<item
    android:id="@+id/action_settings"
    android:icon="@drawable/ic_settings_icon"
    android:title="@string/action_settings"
    app:showAsAction="always"
    playtube:showAsAction="always">
    <menu>

        <item
            android:id="@+id/settings_action_sleep_timer"
            android:title="@string/settings_sleep_timer_title"
            android:visible="false"
            playtube:showAsAction="ifRoom" />

        <item
            android:id="@+id/settings_action_sdcard"
            android:checkable="true"
            android:title="@string/settings_sd_card_title"
            playtube:showAsAction="ifRoom" />

        <item
            android:id="@+id/settings_action_hd"
            android:checkable="true"
            android:title="@string/settings_resolution"
            android:visible="true"
            playtube:showAsAction="ifRoom" />

    </menu>
</item>

当我尝试创建签名 APK 时,出现此 Lint 错误:

<issue
id="NamespaceTypo"
severity="Fatal"
message="Suspicious namespace and prefix combination"
category="Correctness"
priority="8"
summary="Misspelled namespace declaration"
explanation="Accidental misspellings in namespace declarations can lead to some very obscure error messages. This check looks for potential misspellings to help track these down."
errorLine1="    xmlns:app=&quot;http://schemas.android.com/tools&quot;"
errorLine2="               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
    file="*/src/main/res/menu/main_activity_actions.xml"
    line="2"
    column="16"/>

知道如何修复此错误吗?

最佳答案

只需从 XML 中删除以下代码行

xmlns:app="http://schemas.android.com/tools"

并像下面这样更新您的代码,然后尝试登录它会起作用

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:playtube="http://schemas.android.com/apk/res-auto">


    <item
        android:id="@+id/action_settings"
        android:icon="@drawable/ic_settings_icon"
        android:title="@string/action_settings"
        playtube:showAsAction="always">
        <menu>

            <item
                android:id="@+id/settings_action_sleep_timer"
                android:title="@string/settings_sleep_timer_title"
                android:visible="false"
                playtube:showAsAction="ifRoom" />

            <item
                android:id="@+id/settings_action_sdcard"
                android:checkable="true"
                android:title="@string/settings_sd_card_title"
                playtube:showAsAction="ifRoom" />

            <item
                android:id="@+id/settings_action_hd"
                android:checkable="true"
                android:title="@string/settings_resolution"
                android:visible="true"
                playtube:showAsAction="ifRoom" />

        </menu>
    </item>
</menu>

关于java - Android 应用程序在尝试签署 apk 时出现 Menu Lint 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58833773/

相关文章:

Android 获取 JNI 库目录

java - 从美国到瑞典的 SimpleDateFormat 时间转换不适用于真实设备,但适用于模拟器

android - 从 Android Studio 中删除不需要的文件

android - 如何编写宏以在模拟器中运行?

java - 多态对象的 jackson 自定义反序列化

java - 在 Java 中尝试从 HDFS 复制 FromLocalFile 时出现 “Wrong FS… expected: file:///”

java - 我可以在 Spring MVC Controller 中获取当前的 webflow 状态吗?

android - 允许 EditText 中的特定字符并阻止所有其他字符 Android

android - 等待设备 : The emulator process for AVD . 时出错 ... 被杀死

java - 蔚来。监听同一个端口的多个客户端 channel