从DevEco Studio 6.0.1 Beta1开始,Code Linter新增版本兼容性规则扫描。
工程代码中调用的API版本比工程配置中的compatibleSdkVersion版本高,可能会导致兼容性问题。建议添加代码报错措施,消除兼容性问题。
- // code-linter.json5
- {
- "rules": {
- "@compatibility/api-compatibility-check": "warn"
- }
- }
该规则无需配置选项。
示例一:API调用前,增加SDK版本判断。
- import { dataUriUtils } from '@kit.AbilityKit';
- import { deviceInfo } from '@kit.BasicServicesKit';
-
- @Component
- struct Test {
- build() {
- Text('hello').onClick(() => {
- // 使用接口前增加SDK版本的判断,SDK版本计算方式具体请参考应用升级targetSDKVersion兼容低版本指导
- if (deviceInfo.distributionOSApiVersion >= 60000) {
- dataUriUtils.getId('');
- }
-
- // 使用接口前增加SDK版本的判断
- if (deviceInfo.sdkApiVersion >= 20) {
- dataUriUtils.getId('');
- }
- })
- }
- }
示例二:API调用前,增加判空。
- import { dataUriUtils } from '@kit.AbilityKit';
-
- @Component
- struct Test {
- build() {
- Text("hello").onClick(() => {
- // 判空
- if (dataUriUtils.getId !== undefined) {
- dataUriUtils.getId('');
- }
- })
- }
- }
示例三:API调用前,使用try-catch异常处理。
- import { dataUriUtils } from '@kit.AbilityKit'
-
- @Component
- struct Test {
- build() {
- Text('hello').onClick(() => {
- // 使用try-catch语法
- try {
- dataUriUtils.getId('');
- } catch (error) {
- // 异常处理
- }
- })
- }
- }
- // 工程中compatibleSdkVersion配置为5.0.5(17)
- import { ScrollEffectType } from '@kit.UIDesignKit';
-
- @Component
- struct Test {
- build() {
- Text('hello').onClick(() => {
- // ScrollEffectType.COMMON_BLUR从5.1.0(18)开始支持,不可直接调用
- const value = ScrollEffectType.COMMON_BLUR
- console.info(value.toString())
- })
- }
- }
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功