注册

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

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


image.png


网上查到解决方案。


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的版本号

image.png


JDK 版本


http://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


作者:一个不会重复的id
来源:juejin.cn/post/7410711559964229682

0 个评论

要回复文章请先登录注册