Unity使用Gradle打包出错问题

Unity使用Gradle打包出错问题

新版Unity的Android平台的创建系统默认使用的Gradle,也是跟随了Android开发技术发展,毕竟现在开发Android基本都是用Android Studio了。但是当使用Gradle方式打包Android时会出错,无法成功。这里先讲下如何切换回Legacy模式(就是老版使用eclipse出Android)进行打包,然后再讲如何解决这个错误。我现在的错误是因为无法从默认仓库下载包导致的问题。

使用老版 Internal

先前为了抓紧时间出包就改成了老版方式,需要改两个地方

  1. 打开 File/Build Settings 将 Build System改成 Internal
    Build Settings界面
  2. 打开 Player Settings/Publishing Settings,勾选 Use Legacy SDK tools
    Publishing Settings

使用Gradle

受当初解决配置Android Studio问题启发,然后也看了下出错日志,发现还是因为使用Gradle从仓库下载包下载失败导致的。
从仓库下载失败
去改下unity中android的Gradle Template吧,当然也可以自定义模板,还是去 Publishing Settings 中然后勾选 Custom Gradle Template,再在工程目录 Plugins 中定制自己的模板。

修改默认 Gradle 配置文件

去unity的安装目录,然后一路来到 GradleTemplates 目录。我现在使用的是 2018.4.0f1。目录是这样子的。

..\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates

找到里面的 mailTemplate.gradle 文件,修改里面的内容。将 repositories 中的 google() jcenter() 改成阿里的仓库镜像。
修改前

    repositories {
        google()
        jcenter()
    }
    
 	...
 	
 	allprojects {
    	repositories {
       		google()
       		jcenter()
        	flatDir {
            	dirs 'libs'
        	}
   	 }
	}

修改后

    repositories {
        maven {
            url "https://maven.aliyun.com/repository/google"
        }
        maven {
            url "https://maven.aliyun.com/repository/jcenter"
        }
    }
    
    ...
    
	allprojects {
    	repositories {
        	maven {
            	url "https://maven.aliyun.com/repository/google"
        	}
        	maven {
            	url "https://maven.aliyun.com/repository/jcenter"
        	}
        	flatDir {
            	dirs 'libs'
        	}
    	}
	}

这样修改后再次打包就可以正常从仓库下载包了,然后就打包成功了。

Unity使用 Gradle 来编译 il2cpp,需要进行以下步骤: 1. 打开 Unity,选择 File -> Build Settings,在弹出的窗口中选择 Android 平台。 2. 在右侧的面板中,选择 Player Settings,进入 Android Player Settings 界面。 3. 在 Android Player Settings 界面中,找到 Publishing Settings,勾选 Custom Main Gradle Template。 4. 点击 Edit Main Gradle Template 按钮,打开 Gradle 模板文件。 5. 在模板文件中,找到 buildTypes 部分,添加以下代码: ``` release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' ndk { abiFilters "armeabi-v7a", "arm64-v8a" } externalNativeBuild { ndkBuild { path "src/main/cpp/Android.mk" } } } ``` 说明: - `minifyEnabled` 表示是否启用代码混淆,默认为 false。 - `proguardFiles` 表示混淆规则文件,默认为 Android SDK 中的 proguard-android.txt 文件。 - `ndk` 表示指定编译的 ABI 类型,这里指定了 armeabi-v7a 和 arm64-v8a 两种类型。 - `externalNativeBuild` 表示使用外部编译工具进行编译。 - `ndkBuild` 表示使用 ndk-build 工具进行编译。 - `path` 表示 ndk-build 工具的编译脚本文件路径。 6. 保存模板文件,返回 Android Player Settings 界面。 7. 在 Android Player Settings 界面中,找到 Publishing Settings,勾选 Custom Gradle Properties。 8. 在 Custom Gradle Properties 中添加以下代码: ``` android.useAndroidX=true android.enableJetifier=true ``` 说明: - `android.useAndroidX` 表示是否使用 AndroidX 库,默认为 true。 - `android.enableJetifier` 表示是否启用 Jetifier 工具,将旧版的 Support 库转换为 AndroidX 库,默认为 true。 9. 点击 Build 按钮,进行 il2cpp 编译。编译完成后,会生成生成 APK 文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值