Android studio打包apk的时候报错Android Error:Error: Expected a color resource id (R.color.) but received an

本文解决两个常见Android打包问题:一是编译正常但打包时出现颜色资源类型错误,通过修改lintOptions配置解决;二是Element layer-list must be declared错误,将相关资源文件移至drawable文件夹即可。

今天碰到一个问题:编译运行的时候都是好的。但是在打包apk的时候报错了。错误是:Android Error:Error: Expected a color resource id (R.color.) but received an RGB integer [ResourceType]
。。在网上看到一个解决方法:

android {
lintOptions {
disable “ResourceType”
}
}

或者:

android{
lintOptions {
        checkReleaseBuilds false
    }
}

问题解决了。但是原因不知道为撒:然后又看到了一片文章:
地址:

http://www.cnblogs.com/supluo/p/5512917.html

文章里面有原因解析..
问题2:Android Studio下Element layer-list must be declared问题
运行的时候也是没有报错。但是在打包的时候报错了。一看anim文件夹下有个文件报错了。。有一行英文。大概意思就是layer-list或者shape这些标签没有定义。。layer-list或者shape等这些标签是常用的标签,Android Studio居然报没有定义错误,在Eclipse中却没有这个问题。网上不少人说这是Android Studio的一个bug。。。具体解决方法就是把这两个文件放到drawable文件夹下。就好了。。

对于这个问题,首先要了解layer-list、shape等这些标签是什么东西。每一种标签都有对应的资源类,layer-list、shape等等标签代表的其实是个drawable资源。layer-list最终会解析为LayerDrawable,shape会解析为ShapeDrawable,其它的标签类似。由此可以看出layer-list或者shape等资源是drawable资源,应该放到drawable资源文件夹下。color资源不包括drawable资源,当然没有定义drawable类型的标签。

Eclipse不像Android Studio,对资源类型的检查没有那么严格,所以没有报错误。我觉得这倒是Android Studio的优点,是什么资源就应该放到什么位置,不容易让人产生疑惑。所以在Android Studio下的解决方法就是把这些资源文件移动到drawable资源文件夹下,这个问题解决了。。。。

每日语录:
安下心来,扎实向前。且行且思。且行且看。。加油!!
单曲循环《你这样恨我》

报错 `error: #29:expected an expression` 通常表示编译器期望在某个位置有一个有效的表达式,但遇到了不符合语法规则的内容。对于错误信息 `.ErrorCode = HAL_FLASH_ERROR_NONE};`,下面是可能的错误原因及解决办法: ### 错误原因及解决办法 1. **语法错误**:此错误往往是由于代码里存在语法错误,像缺少分号、括号不匹配、逗号使用有误等。在 `.ErrorCode = HAL_FLASH_ERROR_NONE};` 中,最后的 `};` 可能拼写错误或者多余。 ```c // 错误示例 Flash_HandleTypeDef hflash; hflash.ErrorCode = HAL_FLASH_ERROR_NONE}; // 正确示例 Flash_HandleTypeDef hflash; hflash.ErrorCode = HAL_FLASH_ERROR_NONE; ``` 2. **结构体访问错误**:若 `.ErrorCode` 是结构体的成员,要保证结构体变量已正确定义与初始化。 ```c // 错误示例 // 未定义结构体变量 .ErrorCode = HAL_FLASH_ERROR_NONE; // 正确示例 Flash_HandleTypeDef hflash; hflash.ErrorCode = HAL_FLASH_ERROR_NONE; ``` 3. **宏定义错误**:若 `HAL_FLASH_ERROR_NONE` 是宏定义,要确保其定义无误。 ```c // 错误示例 #define HAL_FLASH_ERROR_NONE // 使用时会出错 Flash_HandleTypeDef hflash; hflash.ErrorCode = HAL_FLASH_ERROR_NONE; // 正确示例 #define HAL_FLASH_ERROR_NONE 0 Flash_HandleTypeDef hflash; hflash.ErrorCode = HAL_FLASH_ERROR_NONE; ``` 4. **头文件包含错误**:要保证包含了定义 `Flash_HandleTypeDef` 和 `HAL_FLASH_ERROR_NONE` 的头文件。 ```c // 错误示例 // 未包含必要的头文件 Flash_HandleTypeDef hflash; hflash.ErrorCode = HAL_FLASH_ERROR_NONE; // 正确示例 #include "stm32xxxx_hal_flash.h" Flash_HandleTypeDef hflash; hflash.ErrorCode = HAL_FLASH_ERROR_NONE; ``` ### 调试建议 - **检查代码上下文**:查看错误行前后的代码,保证语法正确,括号、分号等符号使用无误。 - **使用代码编辑器的语法检查功能**:很多代码编辑器具备语法检查功能,可帮助找出语法错误。 - **逐步注释代码**:将错误行附近的代码逐步注释掉,然后重新编译,以此定位错误所在。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值