一次接手远古Android项目终于运行起来了

1,671 阅读4分钟

我也没做过安卓开发,2020年外包开发的app在客户新手机上安装不上,搞呗。apk安装报错此应用与最新版Android不兼容,试了同事的Android 14 确实同样报错

image.png

网上查到解决方案。

www.duidaima.com/Group/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的版本号

image.png

JDK 版本

www.oracle.com/java/techno…

根据build.gradle中看出要JDK8,而且jdk8安装后默认有jre目录,不像jdk21要手动生成jre目录

注意上面网站用Chrome打开登录Oracle后报错Cookie太长,改为360极速版正常下载

image.png

登录或注册oracle账号才能下载

image.png

配置环境变量

新建JAVA_HOME    C:\Program Files\Java\jdk-1.8

修改PATH    %JAVA_HOME%\bin       ;%JAVA_HOME%\jre\bin

网上说前面第二个前面一定要带分号

image.png

image.png

测试正常

image.png

额外补充 JDK17 和 JDK21 生成 jre目录

上面用的JDK8在安装好后默认是生成jre目录的,但是如果JDK17和JDK21没有默认生成jre目录,需要手动生成

必须管理员权限打开CMD

image.png

进入到jdk-21目录执行命令就可以生成jre文件夹了

bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

image.png

image.png

Android Studio 版本

developer.android.google.cn/studio/arch…

根据build.gradle中gradle:4.1.1看出要下载Android Studio 4.1.1 , 其他新版本项目有各种报错

image.png

再去官网下载对应版本

image.png

第二步 Android Studio 安装过程中问题解决

正常安装Android Studio

image.png

初始化设置sdk代理

启动后报错 Unable to access Android SDK add-on list,点 Setup Proxy

修改Automatic proxy configuration URL设置为:mirrors.neusoft.edu.cn

因为后面都是google的域名,不设置sdk代理多半是下载不了的

image.png

image.png

可能设置Proxy再报错同样Unable这个错,就点 Cancel 跳过,后面都点 Next 直达 Finiash

image.png

安装sdk版本

第一次进入启动页面,在Configure选择SDK Manager,我把API Level的28,29,30都勾选上,因为我看老项目代码里面targetSdkVersion 28,而我找到的解决方法说最少29,干脆我就勾上这三个

image.png

image.png

后面点Accept,就直接下载到Finish呗

image.png

后面遇到报错 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

image.png

具体看Build Tools有哪些版本,可以查看SDK安装目录build-tools有哪些,改成有的版本即可

image.png

安装 avd 模拟器

Android项目要运行是要模拟器的,avd就是官方调试模拟器,也可以用第三方的逍遥模拟器,夜游模拟器等

image.png

进去后随便选个 Pixel 4 XL,再进去我老项目是API Level 28的,就需要点 Download 下载

image.png

image.png

安装 HAXM

运行项目要求安装 HAXM,默认安装即可

image.png

image.png

第三步运行老项目解决问题

打开项目

SDK目录与原项目不匹配,点OK自动更新,估计原项目是苹果电脑开发,我这是windows环境

image.png

设置Gradle阿里云代理

找到 gradle-wrapper.properties 文件修改 distributionUrl 为国内代理,国外域名下载gradle超时失败了

替换域名后点 Sync Now

distributionUrl=https\://mirrors.aliyun.com/macports/distfiles/gradle/gradle-6.5-all.zip

image.png

image.png

image.png

image.png

如果 sync now点了出现proxy settings弹窗,那在第一个HOST name填写 mirrors.neusoft.edu.cn

image.png

设置 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' }

image.png

设置 64位指令集

在 app/build.gradle的ndk下增加 arm64-v8a

image.png

运行项目,如果遇到问题可以点工具栏 build -> clean project 再 rebuild project

image.png

第四步签名打包apk

工具栏 build -> Generate Signed Bundle / Apk ...

image.png

选 APK

image.png

选择签名文件输入 password这三个输入框,如果没有就create new新建

image.png

选择打包apk存放目录,Finish就完成了

image.png

右下角显示成功

image.png