error: No resource identifier found for attribute 问题

本文深入解析了在Android开发过程中遇到的'error: No resource identifier found for attribute'错误的原因,并提供了详细的解决方案。通过在res/values目录下添加attrs文件,正确声明资源属性,开发者可以避免此类常见错误,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现error: No resource identifier found for attribute的问题,如果你使用了自定义的标签,可能是因为没有在res/values中加入attrs文件。


文件格式如下:

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

    <declare-styleable name="memdata">
        <attr format="integer" name="id" />
        <attr format="string" name="name" />
        <attr format="integer" name="classId" />
        <attr format="string" name="q" />
        <attr format="string" name="a" />
    </declare-styleable>

</resources>


<think>好的,用户遇到了Unity在构建Android应用时的错误,主要是关于AndroidManifest.xml中的几个问题。我需要仔细分析错误信息,找出原因并提供解决方案。 首先,错误信息显示有多个问题:找不到networkSecurityConfig和requestLegacyExternalStorage这两个属性,以及几个主题样式未找到。用户可能在使用较旧的SDK版本,而这些属性是在较新的SDK中引入的。此外,主题样式可能没有正确配置或引用。 接下来,我需要检查每个错误的具体原因。对于networkSecurityConfig和requestLegacyExternalStorage,这些属性需要Android 7.0(API 24)及以上版本的支持,而用户可能使用了较低的build-tools版本23.0.3,这会导致无法识别这些属性。解决方案是升级build-tools和targetSdkVersion到24以上。 关于主题样式找不到的问题,用户可能在manifest中引用了不存在的样式名称,或者没有正确导入相关的资源文件。需要确保在项目的res/values/styles.xml中定义了UnityTheme、FanweiDialogActivityTheme等样式,或者确认使用的库是否包含这些主题。 此外,用户可能使用了旧版本的Unity,导致某些兼容性问题。需要建议用户检查Unity版本,并考虑升级到支持更高Android版本的版本,如2020.3 LTS以上。 最后,用户可能在项目中混合使用了不同的支持库版本,导致兼容性问题。需要统一支持库版本,并确保所有依赖库的兼容性。 总结解决方案:升级build-tools和targetSdkVersion到24以上,更新Unity版本,确保主题样式存在,清理冗余配置,并验证所有依赖库的兼容性。</think>以下是针对构建错误的详细分析及解决方案: --- ### 🔍 **错误原因分析** 1. **`networkSecurityConfig` 和 `requestLegacyExternalStorage` 错误** - 这两个属性需要 **Android 7.0+ (API 24)** 及以上版本支持 - 当前使用 `build-tools 23.0.3` 和 `android-23`,不兼容新特性 2. **主题样式资源找不到** - `@style/UnityTheme` 和 `@style/FanweiDialogActivityTheme` 未在项目中定义 --- ### 🛠️ **解决方案** #### ✅ 1. **升级 Build Tools 和 Target SDK** ```xml <!-- AndroidManifest.xml 中修改 --> <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" /> <!-- 至少 24 以上 --> ``` ```gradle // 在 Unity 导出的 build.gradle 中修改 android { compileSdkVersion 28 // 必须 >= targetSdkVersion buildToolsVersion "28.0.3" // 升级到 28.x defaultConfig { minSdkVersion 19 targetSdkVersion 28 } } ``` #### ✅ 2. **移除不兼容的属性** ```xml <!-- AndroidManifest.xml --> <application android:hardwareAccelerated="true" android:icon="@drawable/app_icon" android:isGame="true" android:label="@string/app_name" android:name="com.dw.Dating.wxapi.App"> ``` > **移除** `android:requestLegacyExternalStorage` 和 `android:networkSecurityConfig` 属性 #### ✅ 3. **定义缺失的主题样式** 在 `Assets/Plugins/Android/res/values/styles.xml` 中添加: ```xml <resources> <!-- Unity 主题 --> <style name="UnityTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> </style> <!-- 支付SDK主题 --> <style name="FanweiDialogActivityTheme" parent="Theme.AppCompat.Dialog"> <item name="android:windowNoTitle">true</item> <item name="android:backgroundDimEnabled">true</item> </style> <style name="FanweiActivityTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> </style> </resources> ``` #### ✅ 4. **清理冗余权限** ```xml <!-- AndroidManifest.xml --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" android:maxSdkVersion="23" /> <!-- 仅保留到 API 23 --> ``` #### ✅ 5. **更新 Unity 版本** - 升级到 **Unity 2020.3 LTS** 或更高版本 - 修复兼容性问题:`FileProvider` 使用 AndroidX ```xml <!-- 修改 provider 的 name --> <provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths_fanwei" /> </provider> ``` --- ### 🧪 **最终验证步骤** 1. 清理 Unity 导出目录 2. 重新生成 AndroidManifest.xml 3. 使用 `aapt` 验证资源: ```bash aapt dump badging AndroidManifest.xml ``` 4. 构建 APK 并安装测试 --- ### 📌 **注意事项** 1. **支持库统一**:确保所有模块使用相同版本的 `androidx.appcompat:appcompat` 2. **ProGuard 规则**:避免混淆微信支付类 ```proguard -keep class com.tencent.mm.sdk.** { *; } -keep class com.fanwei.jubaosdk.** { *; } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值