一次接手远古Android项目终于运行起来了
我也没做过安卓开发,2020年外包开发的app在客户新手机上安装不上,搞呗。apk安装报错此应用与最新版Android不兼容
,试了同事的Android 14 确实同样报错
网上查到解决方案。
http://www.duidaima.com/Gr0up/Topic…
按照第一点增加64位指令集后,重新打包apk解决问题了
1、【成功并上线】在build.gradel文件的ndk部分添加arm64-v8a的指令集
2、【未实验】targetSdkVersion最少为29就能在安卓14上避免异常弹框
安装Android开发环境过程很曲折,重点是要安装项目需要的开发环境版本,不然各种错误失败
。
第一步确认项目开发环境版本
最开始下载Android Studio 2024最新版,2021版等等,JDK21最新版,JDK17都失败。
得出结论:
- 确认Android Studio 版本要看根目录build.gradle中gradle版本,再去官网下载对应版本号
- 确认JDK版本要看另一个build.gradle中targetCompatibility的版本号
JDK 版本
http://www.oracle.com/java/techno…
根据build.gradle中看出要JDK8,而且jdk8安装后默认有jre目录,不像jdk21要手动生成jre目录
注意上面网站用Chrome打开登录Oracle后报错Cookie太长,改为360极速版正常下载
登录或注册oracle账号才能下载
配置环境变量
新建JAVA_HOME C:\Program Files\Java\jdk-1.8
修改PATH %JAVA_HOME%\bin ;%JAVA_HOME%\jre\bin
网上说前面第二个前面一定要带分号
测试正常
额外补充 JDK17 和 JDK21 生成 jre目录
上面用的JDK8在安装好后默认是生成jre目录的,但是如果JDK17和JDK21没有默认生成jre目录,需要手动生成
必须管理员权限打开CMD
进入到jdk-21目录执行命令就可以生成jre文件夹了
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
Android Studio 版本
developer.android.google.cn/studio/arch…
根据build.gradle中gradle:4.1.1看出要下载Android Studio 4.1.1 , 其他新版本项目有各种报错
再去官网下载对应版本
第二步 Android Studio 安装过程中问题解决
正常安装Android Studio
初始化设置sdk代理
启动后报错 Unable to access Android SDK add-on list
,点 Setup Proxy
修改Automatic proxy configuration URL设置为:mirrors.neusoft.edu.cn
因为后面都是google的域名,不设置sdk代理多半是下载不了的
可能设置Proxy再报错同样Unable这个错,就点 Cancel 跳过,后面都点 Next 直达 Finiash
安装sdk版本
第一次进入启动页面,在Configure选择SDK Manager,我把API Level的28,29,30都勾选上,因为我看老项目代码里面targetSdkVersion 28,而我找到的解决方法说最少29,干脆我就勾上这三个
后面点Accept,就直接下载到Finish呗
后面遇到报错 Installed Build Tools revision 35.0.0 is corrupted. Remove and install again using the SDK Manager.
那打开工具条 File -> Settings 找到 Android SDK 项,在 Android SDK Location
点 Edit 重新点Next安装后报错消失
再把 build.gradle 中35都改成28
具体看Build Tools有哪些版本,可以查看SDK安装目录build-tools有哪些,改成有的版本即可
安装 avd 模拟器
Android项目要运行是要模拟器的,avd就是官方调试模拟器,也可以用第三方的逍遥模拟器,夜游模拟器等
进去后随便选个 Pixel 4 XL,再进去我老项目是API Level 28的,就需要点 Download 下载
安装 HAXM
运行项目要求安装 HAXM,默认安装即可
第三步运行老项目解决问题
打开项目
SDK目录与原项目不匹配,点OK自动更新,估计原项目是苹果电脑开发,我这是windows环境
设置Gradle阿里云代理
找到 gradle-wrapper.properties 文件修改 distributionUrl 为国内代理,国外域名下载gradle超时失败了
替换域名后点 Sync Now
distributionUrl=https\://mirrors.aliyun.com/macports/distfiles/gradle/gradle-6.5-all.zip
如果 sync now点了出现proxy settings弹窗,那在第一个HOST name填写 mirrors.neusoft.edu.cn
设置 maven 阿里云代理
在根目录build.gradle的allproject下面增加
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/public' }
设置 64位指令集
在 app/build.gradle的ndk下增加 arm64-v8a
运行项目,如果遇到问题可以点工具栏 build -> clean project 再 rebuild project
第四步签名打包apk
工具栏 build -> Generate Signed Bundle / Apk ...
选 APK
选择签名文件输入 password这三个输入框,如果没有就create new新建
选择打包apk存放目录,Finish就完成了
右下角显示成功
来源:juejin.cn/post/7410711559964229682