androidstudio 高低版本兼容
之前使用androidstudio版本为4.1.3,因为使用新的工程编译报错,需要升级as的版本,所以下载新的as版本Android Studio Narwhal | 2025.1.1 Patch 1 进行使用。
然后导入新的工程,按照工程默认配置进行编译,之后再迁移到旧工程中进行使用。
这里导入工程sherpa-ncnn,地址为https://github.com/k2-fsa/sherpa-ncnn
以下为遇到问题以及解决过程。
1:因为下载新的as,所以很多设置和页面都变了,需要先设置一些页面主题等方便使用。
2:然后使用工程自己的配置进行编译,要能编译通过,这里使用java jdk版本18,在右侧Gradle中的设置图标点进去Gradle Setting 打开,也就是androidstudio工具File--Settings里面的Build,Execution,Deployment下面的Build Tools下面的Gradle,在右侧选择Gradle JDK版本为18,然后在Project Structure里面选择java语言为JAVA 11,虽然这里可能不适配(JDK18应该对应JAVA18?),但是也编译通过了。
3:查看项目根目录下build.gradle下版本插件版本为7.2.2,然后gradle文件夹下使用的是gradle-7.5-bin.zip版本。
plugins {id 'com.android.application' version '7.2.2' apply falseid 'com.android.library' version '7.2.2' apply false }
4:app目录下build.gradle文件下编译目标位compileSdk 32,
5: 使用aar包,以下两种都可以。
//这里用libs下的aar替换依赖
// implementation 'com.github.k2-fsa:sherpa-onnx:v1.12.5'
//gradle7.0以上需要这样写,这种需要拷贝aar到libs下
implementation(fileTree("libs/sherpa-onnx-v1.12.5.aar"))
这样原始工程就编译通过。可以安装运行。
然后迁移到低版本过程:拷贝assets资源,拷贝jniLibs资源,拷贝activity,xml相关。
拷贝aar文件,在上面已经下载好的.gradle文件夹中拷贝出来,放在app下的libs下
然后在app目录下build.gradle文件增加implementation(fileTree("libs/sherpa-onnx-v1.12.5.aar"))
然后修改右侧Gradle-Gradle Settings里面的JDK版本为Oracle OpenJDK 1.8,
然后修改project structure里面java语言版本为1.8(8),
然后编译报错:Failed resolution of: Lkotlin/jvm/internal/Intrinsics
然后在app目录下(不是项目根目录)的build.gradle文件增加:
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.30'
然后重新编译,通过。
这里旧工程原始的工程根目录下的gradle插件版本为"com.android.tools.build:gradle:4.1.3",
gradle版本为gradle-6.5-bin.zip。
虽然通过了,但是后续还是要升上来。跟随版本变化。