Android打包Error:Error: Expected a color resource id (R.color.) but received an RGB integer [ResourceT

升级Android Studio后出现打包错误:Expected a color resource id (R.color.) but received an RGB integer。常规解决方案包括禁用lintOptions的ResourceType检查,但并未解决问题的根源。问题出在引用ResourceType资源时的代码规范,通过在方法上添加@SuppressLint("ResourceType")注解解决了问题,强调了编码规范的重要性。

由于把android studio升级后出现打包的问题,在思考低版本的为什么没有这样的问题而新的版本出现了这样的问题。该如何解决;

Error:Error: Expected a color resource id (R.color.) but received an RGB integer [ResourceType]
在网上解决的办法基本上都是:
在buidle配置中加入
android {
lintOptions {
disable “ResourceType”
}
}
或者加入
android{
lintOptions {
checkReleaseBuilds false
}
}
这样的意思引用的配置是禁用资源类型检测,这样在打包过程中就不会因为资源类型不匹配而提示错误了。
最根本的问题还是没有解决
但是我追查到最终的问题是引用到ResourceType资源时的出现问题,
错误的代码:

  1. public void setBorderColor(@ColorRes int borderColor) {
    if (borderColor == mBorderColor) {
    return;
    }

    mBorderColor = borderColor;
    mBorderPaint.setColor(getResources().getColor(mBorderColor));
    invalidate();
    }
    这说明了一个编码的规范性的问题。
    @SuppressLint(“ResourceType”)
    public void setBorderColor(@ColorRes int borderColor) {
    if (borderColor == mBorderColor) {
    return;
    }

    mBorderColor = borderColor;
    mBorderPaint.setColor(getResources().getColor(mBorderColor));
    invalidate();
    }
    加入@SuppressLint(“ResourceType”)的引用就没有问题了。

我的理解还是是那个编码的规范的问题,依赖引用的个个问题。

不一定是你想要的答案,需要能帮助有需要的人。

报错 `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、付费专栏及课程。

余额充值