AndroidStudio使用命令行出包
使用命令行出包的两种方式:
方案1、Apache ant命令行出包(弃用)。
方案2、Android Gradle命令行出包。
先说方案1,此方案为古老传说流传下来的出包方式,而google在几年前就已经弃用了此方式,并且停止了支持。
所以我们也直接弃用方案1,同时也无须再使用jinkens了。
再说方案2,的确比较简单,方案2也是google要使用的方式,一个长期被支持的方案。
如果需要在线出包,还可以用C#写一个api,与网站对接,网站点个按钮,在线出包。
方案2出包配置(Windows环境):
配置说明:尽量的使用高版本工具、尽量使用Android Studio捆绑工具。
使用命令行出包,需要注意的几点需要配置。
Gradle配置、JDK配置、SDK配置、NDK配置、签名配置、il2cpp的so库编译配置(此项仅为unity2020以上版本il2cpp模式使用)。
如果是unity2020以上的版本,若要打ip2cpp包,则需要il2cpp的so库编译配置。
参考链接:关于Unity2020版本打包安卓工程IL2CPP没有SO的解决方案 - 威少小二orz - 博客园 (cnblogs.com)
以我这边安卓工程和Unity的配置来举例。
我这边Unity工程为2020.3.32f1c1。
Android工程为Unity打出来的Android工程。
本文的结尾会整理出可能出现的异常情况。
1、Gradle下载。
(必须)
https://gradle.org/releases/#close-notification
https://services.gradle.org/distributions/
下载binary-only,我使用的是6.83
2、配置Gradle环境。
(必须)
在系统变量里配置GRADLE_HOME,变量值为gradle的目录,这个目录为gradle中bin的上一层。
在系统变量的pah里增加一个路径:
E:\Download\Gradle\gradle-6.8.3-all\gradle-6.8.3\bin
3、配置ANDROID_HOME环境。
(不确定是必须还是可选,但配了肯定没问题)
路径为你AndroidStudio中sdk的目录。
4、adb配置。
(不需要,写在这里是为了让你知道不需要adb配置。)
5、测试。
在AndroidStudio里的Terminal里输入Gradle -v
如图上所示,则是安装成功。
清除上面的历史信息指令是cls。
如果不知道Terminal从哪里打开,那就把项目切换到Project模式,如下图。
6、项目配置。
使用代码配置jdk:使用AndroidStudio捆绑的jdk配置。
找到捆绑版本的jdk路径,如下图。
AndroidStudio里不需要将它选中,只是在这里找到它的路径。
然后将其配置到gradle.properties文件里。
路径就是写死的,不用怀疑。
使用代码配置gradle:
在gradle-wrapper.properties文件中添加
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
使用代码配置sdk:
使用代码配置ndk:
与sdk在同一个配置文件,如上图,是上图,不是下图。
7、签名配置。
在launcher里的build.gradle加入keystore配置。
unity2019之后打出来的android工程,都是包含launcher和unityLibrary两个工程的,launcher为主工程,unityLibrary为子工程。
8、配置完成,然后初始化gradle。
指令为Gradle init.
如上图所示即为成功。
9、使用指令出包。
使用指令gradle assembleRelease即可出release的包,出包路径为工程目录下的launcher\build\outputs\apk\release。
10、如果不想打开AndroidStudio出包,则打开cmd,
然后cd到源码的目录下,下图的路径就是源码的根文件夹。
然后使用出包指令:
虽然成功了,但是上面有个警告,意思说是我不应该在xml中声明sdk的版本,可以将其移至build.gradle的配置文件中去。
因为是警告,所以直接忽略,之所以忽略,是因为我在build.gradle已经声明过sdk版本了,而xml中的声明的优先级不高,所以忽略。
忽略警告,即为成功。
如下图sdk声明的配置:
以上过程完成,则打包成功。
可能存在的异常情况:
1、Error:FAILURE: Build failed with an exception. * What went wrong: Task '' not found in root projec
2、 AAPT: error: unexpect ed element <queries> found in <manifest>.
12无效解:网上传言要直接在项目的目录下修改与项目名称同名的.iml文件,删除<component name="FacetManager"> ... </component>
12正解:彻底关闭AndroidStudio,重启,重新Clear Project,重新Reload,再将Build.gradle里的classpath升级到4.0以上版本。
classpath 'com.android.tools.build:gradle:4.0.1'
如下图:
3、Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
无效解:Gradle版本不对。
正解:jdk的兼容问题,将配置文件里配置的jdk设置为AndroidStudio捆绑的jdk版本,参考本文中的jdk配置。
4、> Configure project :launcher
WARNING: DSL element 'useProguard' is obsolete.
It will be removed in version 5.0 of the Android Gradle plugin.
Use 'android.enableR8' in gradle.properties to switch between R8 and Proguard.
WARNING: DSL element 'useProguard' is obsolete.
It will be removed in version 5.0 of the Android Gradle plugin.
Use 'android.enableR8' in gradle.properties to switch between R8 and Proguard
无效解:将build.gradle中的useProguard=false属性移至gradle.properties,并将此属性的名称更改为新版本的android.enableR8=false。
正解:不必须选项,忽略警告即可。
-----------------------------------------------------
以上为Gradle命令出包的全部内容。
标签:出包,配置,Gradle,AndroidStudio,命令行,使用,gradle From: https://www.cnblogs.com/vsirWaiter/p/16639243.html