
我开发了一个 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 PRO 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(); .... } ... |