You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio 3.0报错:未知元素<uses-permission>,请求技术协助

解决AAPT2报错:unknown element found

我之前开发扫描类App的时候也踩过一模一样的坑!这个报错本质是你把<uses-permission>标签放错了Manifest文件里的层级位置,AAPT2对Manifest的结构校验非常严格,不允许权限标签出现在非根层级的位置。

问题根源

<uses-permission>必须是<manifest>根标签的直接子元素,绝对不能嵌套在<application>、<activity>或者其他任何标签内部——很多开发者会不小心把权限声明写到<application>里面,这就会触发这个“未知元素”的报错。

正确的Manifest结构示例

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.your.scanner.app">

    <!-- 权限声明必须放在这里:<manifest>的直接子节点 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <!-- 如果需要其他关联权限,比如存储,也放在同一层级 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <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/Theme.ScannerApp">
        <!-- 你的Activity、Service等组件声明都在这里面 -->
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

快速修复步骤

  • 打开你的AndroidManifest.xml文件
  • 找到报错的<uses-permission android:name="android.permission.CAMERA" />行
  • 把它拖拽到<manifest>标签的直接子节点位置(也就是<application>标签的上方或下方,确保不在任何标签内部)
  • 点击Android Studio右上角的「Sync Project with Gradle Files」按钮同步项目
  • 重新编译项目,这个报错应该就消失了

额外提示

如果你的App目标API是23及以上,除了Manifest声明,还需要在代码中动态申请相机权限,不然运行时会被拒绝访问相机。不过先解决当前的编译报错,再处理运行时权限的问题就好。

内容的提问来源于stack exchange,提问作者Ricardo F. Seikka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:37:13