公司有个2017年的安卓老项目需要打包,主要是需要调用后端修改的地址,然后在重新打包出来,以前有时间短暂的接触过安卓,后面就没有继续研究安卓了,还是继续自己的java专业。现在公司需要用,那就开始研究打包apk
第一步找到官网 https://developer.android.google.cn/studio
下载了一个2022年最新的版本,不得行,后面又换成了2019年版本,还是不得行。
最后搞了一个周末,都没有打出来,同时公司托人找了一个会安卓的小伙,结果也没有打出来,用高版本的android studio 打包,会提示gradle升级,gradle版本升级后,android studio里面用到的插件gradle也会升级,升级后由于项目太老,这样的做法会导致修改一些语法,自己试了一下,修改太多了,就放弃这个方法。
后面去查了一下资料,发现Android Studio,gradle插件,gradle版本是有关联的
三者必须匹配。于是去找了官网上2017年的版本,Android Studio2.2.3
android-studio-bundle-162.4069837-windows这个64位的下载,按照如下步骤操作
项目能正常编译和打包。
第一步gradle 插件版本号:G:\tools\Driver\Driver\Driver\build.gradle
classpath 'com.android.tools.build:gradle:2.2.3'
第二步gradle的版本号G:\tools\Driver\Driver\Driver\gradle\wrapper\gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
这个两者对应关系
gradle 的版本号
gradle->wrapper->gradle-wrapper.properties
gradle 插件版本号
classpath ‘com.android.tools.build:gradle:2.2.3’ 指的是 gradle 插件的版本号
第三步:G:\tools\Driver\Driver\Driver\app\build.gradle指定了编译的文件
buildToolsVersion: android构建工具的版本,
其中包括了打包工具aapt、dx等等。这个工具的目录位于..your_sdk_path/build-tools/XX.XX.XX,通过SDK Manager 更新;
在SDK Manager中安装选择版本,buildToolsVersion的版本需要>=CompileSdkVersion; 高版本的build-tools 可以构建低版本编译的android程序;
CompileSdkVersion:是告诉gradle 用哪个SDK版本来编译,和运行时要求的版本号没有关系;使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。
Android Studio 3.0 之后自动将插件版本升级到3.0.0,所以我们也需要对应地把Gradle升级到4.1才行。(后面就是因为这个填坑)
首先要升级某些使用了旧版本gradle插件方法的第三方gradle插件,譬如我们项目里面的butterknife和tinker; 注意一下`implementation`和`compile`的差别,
然后该补引用的补,该改成`api`的就改,其他编译不通过的根据错误日志基本可以通过禁用D8编译器和aapt2来解决。
三者的关系
知识扩展
Gradle插件会有版本号,每个版本号又对应有一个或一些 Gradle发行版本(一般是限定一个最低版本),
也就是我们常见的类似gradle-4.1-all.zip这种东西;
如果这两个版本对应不上了,那你的工程构建的时候就会报错。
对应关系参看Gradle插件和Gradle版本对应关系。
Android Studio 3.0 之后自动将插件版本升级到3.0.0,
所以我们也需要对应地把Gradle升级到4.1才行。(后面就是因为这个填坑)
Android Gradle Plugin又会跟 Android SDK BuildTool有关联(版本有对应的关系),
因为它还承接着AndroidStudio里的编译相关的功能,这也是我们要在项目的 local.properties
文件里写明Android SDK路径、在build.gradle 里注明 buildToolsVersion 的原因。
Android Gradle Plugin 本质上就是 一个AS的插件,它一边调用 Gradle本身的代码和批处理工具来构建项目,
一边调用Android SDK的编译、打包功能,从而让我们能够顺畅地在AS上进行开发。
下面是打包的时候遇到的采坑记录
解决项目加载gradle过慢的方法
第一 使用
https://mirrors.cloud.tencent.com/gradle/gradle-x.x-all.zip
来代替原来的//x.x是你下载的gradle版本号,需要根据自己的版本进行替换
原来的下载链接:
https\://services.gradle.org/distributions/gradle-x.x-all.zip
第二步:找到项目中build.gradle文件修改,主要是修改buildscript和allprojects下
Repositories中的内容
Android Studio即可(如果之前gradle已经下载了一半的,建议删除掉,然后再修改重启,删除的文件(.gradle文件夹)
第三步
Failed to find Build Tools revision 24.0.2 Install Build Tools 24.0.2 and sync project
错误在哪,可以发现:
revision 24.0.2不在
C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools
然后双击安装
原来的是
Android Gradle plugin to version 2.2.2是android studio的版本号
gradle to version 2.14.1是本人的distributionUrl.直接点击update
update是自动帮你更新
studio导入github里的旧项目后的报错提示:
解决办法:只要在AndroidStudio中安装26.0.2版本的编译工具即可
最后在Sync Project With Gradle File重新编译项目