我开发了一个 android studio 的插件,用到了部分 android studio 的代码,但是到 as 的某个版本之后,这个类没了,改为另外一个类。
这个时候我遇到了一个问题,就是如果我改 target 为新的 as 作为目标,虽然可以使用这个新的类,然后适配新的 as ,但是旧版本的 as 就不能使用了(表现就是直接找不到这个类)。
请问如果我要同时兼容两个 as 版本,一般都是怎么做的? 我能想到的方法就是
1
zeal7s 2023-10-14 17:37:44 +08:00
可以拿到当前 as 的版本号吗?拿到的话就能用 if else 做个判断
|
3
BBCCBB 2023-10-14 17:52:31 +08:00
jetbrains 的很多插件都是要使用新版本就必须升级 ide 到高版本的.
|
4
HangoX OP |
6
lisongeee 2023-10-14 22:00:20 +08:00
> as 的代码质量有点差,很多时候不是想升级就能升级的,还有就是刚好是个分割线,一般都是部分人先升级上去的
这点确实没毛病,kts 的语法高亮老是报错,还有就是 R 资源提示未发现符号 虽然不影响运行 gradle build ,但是真的很影响开发体验 |
7
HangoX OP |
8
danbai 2023-10-15 08:11:53 +08:00 via Android
idea 插件可以设置使用的版本号,你可以维护两个版本。
|
9
learningman 2023-10-15 13:06:34 +08:00
加个版本限制,分开发布,新的特性 backport 到旧版本上。
你去看 jb 自己的插件也是这么搞的。 |
10
HangoX OP |
11
ikas 2023-10-15 17:48:00 +08:00
兼容类
java 中没啥好办法 我自己的一个安卓项目,使用了不同版本的内置 api dependencies { api platform(project(':bom')) implementation project(":system-common") implementation project(":system28") implementation project(":system29") implementation project(":system30") implementation project(":system31") implementation project(":system32") implementation project(":system33") implementation project(":system34") } if (AndroidVersionUtil.getVersion() >= 34) { permissionManager = new PermissionManager34(); .... } else if (AndroidVersionUtil.getVersion() >= 33) { permissionManager = new PermissionManager33(); ... } else if (AndroidVersionUtil.getVersion() >= 32) { permissionManager = new PermissionManager32(); .... } ... |