Unity 出包 总是卡在Building Gradle project?
Unity版本 2018.4.3f1 也是在昨天刚学这一块,被卡了将近大半天。之前一直在Building Gradle project这里卡着,十分钟没动静我就给关了,没想到要那么长时间。挂上VPN结果网络一波动就挂掉。
折腾了将近一天。在https://github.com/googlesamples/unity-jar-resolver/issues/63其提到的gradle/gradle#1747有这样一句。
删掉.gradle/daemon文件夹。(我的是C:\Users\Administrator\.gradle\daemon)
神奇的事情发生了,我几十秒就Build成功。
至于github中提到的--no-daemon方法。
在Unity的gradle.properties则可以通过IPostGenerateGradleAndroidProject接口进行修改。
(类似该问题https://zhuanlan.zhihu.com/p/83162670)
添加一个脚本。
using UnityEngine;
using System.Collections.Generic;
using System.IO;
#if UNITY_EDITOR
using UnityEditor.Android;
public class AndroidPostBuildProcessor : IPostGenerateGradleAndroidProject
{
public int callbackOrder
{
get
{
return 999;
}
}
void IPostGenerateGradleAndroidProject.OnPostGenerateGradleAndroidProject(string path)
{
Debug.Log("Bulid path : " + path);
//读取gradle.properties中的内容
string gradlePropertiesFile = path + "/gradle.properties";
List<string> properties = new List<string>(File.ReadAllLines(gradlePropertiesFile));
//添加 no daemon设置
properties.Add(&#34;org.gradle.daemon=false&#34;);
File.WriteAllLines(gradlePropertiesFile,properties);
}
}
#endifAndroidStudio的使用过程中也有人提到了类似的方法https://blog.csdn.net/marryvivien/article/details/54573645
注:
因为在我的电脑上使用第一种方法后,立刻流畅了起来。
在此基础上干掉守护进程后,只是感觉上快了一些。
至于第二种方法究竟有没有效果,有这种问题的可以试一下。
1月24日补充。
值得注意的是,在进行了以上设置后,开启vpn仍然会出现连接上的error导致build失败。
我在关闭vpn后,该问题便消失了。 请问下 题主这个问题是怎么解决的呢? build.gradle文件:
// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
buildscript {
repositories {
google()
jcenter()
mavenCentral()
maven{
url &#39;https://maven.google.com/&#39;
name &#39;Google&#39;
}
}
dependencies {
classpath &#39;com.android.tools.build:gradle:3.2.0&#39;
}
}
allprojects {
repositories {
google()
jcenter()
flatDir {
dirs &#39;libs&#39;
}
mavenCentral()
maven{
url &#39;https://maven.google.com/&#39;
name &#39;Google&#39;
}
}
}
// Android Resolver Repos Start
( + (rootProject.subprojects as List)).each {
ext {
it.setProperty(&#34;android.useAndroidX&#34;, true)
it.setProperty(&#34;android.enableJetifier&#34;, true)
}
}
( + (rootProject.subprojects as List)).each { project ->
project.repositories {
maven {
url &#34;https://maven.google.com&#34;
}
maven {
url &#34;file:///F:/WorkSpace/Project/Client/Assets/GeneratedLocalRepo/Firebase/m2repository&#34; // Assets/Firebase/Editor/AnalyticsDependencies.xml:18, Assets/Firebase/Editor/AppDependencies.xml:22, Assets/Firebase/Editor/MessagingDependencies.xml:20
}
maven {
url &#34;https://maven.google.com/&#34; // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7
}
maven {
url &#34;file:///F:/WorkSpace/Project/Client/Assets/GeneratedLocalRepo/GooglePlayGames/Editor/m2repository&#34; // Assets/GooglePlayGames/Editor/GooglePlayGamesPluginDependencies.xml:11
}
mavenLocal()
jcenter()
mavenCentral()
}
}
// Android Resolver Repos End
apply plugin: &#39;com.android.application&#39;
dependencies {
// Android support Start
implementation &#39;com.android.support:support-v4:28.0.0&#39;
implementation &#39;com.android.support:customtabs:28.0.0&#39;
implementation &#39;com.android.support:appcompat-v7:28.0.0&#39;
implementation &#39;com.android.support:recyclerview-v7:28.0.0&#39;
implementation &#39;com.android.support:cardview-v7:28.0.0&#39;
// Android support End
// Android gms Start
implementation &#39;com.google.android.gms:play-services-ads:18.0.0&#39;
// Android gms End
implementation fileTree(dir: &#39;libs&#39;, include: [&#39;*.jar&#39;])
// Android Resolver Dependencies Start
implementation &#39;com.android.support:appcompat-v7:25.3.1&#39; // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency(System.Object
implementation &#39;com.android.support:cardview-v7:25.3.1&#39; // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency(System.Object
implementation &#39;com.android.support:customtabs:25.3.1&#39; // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency(System.Object
implementation &#39;com.android.support:support-v4:25.3.1&#39; // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency(System.Object
implementation &#39;com.facebook.android:facebook-applinks:[8.0, 9)&#39; // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:6
implementation &#39;com.facebook.android:facebook-core:[8.0, 9)&#39; // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:5
implementation &#39;com.facebook.android:facebook-gamingservices:[8.0, 9)&#39; // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:9
implementation &#39;com.facebook.android:facebook-login:[8.0, 9)&#39; // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:7
implementation &#39;com.facebook.android:facebook-share:[8.0, 9)&#39; // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:8
implementation &#39;com.google.android.gms:play-services-ads:19.5.0&#39; // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7
implementation &#39;com.google.android.gms:play-services-base:17.5.0&#39; // Assets/Firebase/Editor/AppDependencies.xml:17
implementation &#39;com.google.firebase:firebase-analytics:18.0.0&#39; // Assets/Firebase/Editor/MessagingDependencies.xml:15
implementation &#39;com.google.firebase:firebase-analytics-unity:7.0.2&#39; // Assets/Firebase/Editor/AnalyticsDependencies.xml:18
implementation &#39;com.google.firebase:firebase-app-unity:7.0.2&#39; // Assets/Firebase/Editor/AppDependencies.xml:22
implementation &#39;com.google.firebase:firebase-common:19.3.1&#39; // Assets/Firebase/Editor/AppDependencies.xml:13
implementation &#39;com.google.firebase:firebase-messaging:21.0.0&#39; // Assets/Firebase/Editor/MessagingDependencies.xml:13
implementation &#39;com.google.firebase:firebase-messaging-unity:7.0.2&#39; // Assets/Firebase/Editor/MessagingDependencies.xml:20
implementation &#39;com.google.games:gpgs-plugin-support:0.10.12&#39; // Assets/GooglePlayGames/Editor/GooglePlayGamesPluginDependencies.xml:11
implementation &#39;com.parse.bolts:bolts-android:1.4.0&#39; // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:4
// Android Resolver Dependencies End
implementation(name: &#39;billing-3.0.1&#39;, ext:&#39;aar&#39;)
implementation(name: &#39;common&#39;, ext:&#39;aar&#39;)
implementation(name: &#39;facebook-android-wrapper-8.1.1&#39;, ext:&#39;aar&#39;)
implementation(name: &#39;googlemobileads-unity&#39;, ext:&#39;aar&#39;)
implementation(name: &#39;unityOBBDownloader&#39;, ext:&#39;aar&#39;)
implementation project(&#39;:FirebaseApp.androidlib&#39;)
implementation project(&#39;:GoogleMobileAdsPlugin.androidlib&#39;)
implementation project(&#39;:GooglePlayGamesManifest.plugin&#39;)
implementation project(&#39;:unity-android-resources&#39;)
}
// Android Resolver Exclusions Start
android {
packagingOptions {
exclude (&#39;/lib/armeabi/*&#39; + &#39;*&#39;)
exclude (&#39;/lib/mips/*&#39; + &#39;*&#39;)
exclude (&#39;/lib/mips64/*&#39; + &#39;*&#39;)
exclude (&#39;/lib/x86/*&#39; + &#39;*&#39;)
exclude (&#39;/lib/x86_64/*&#39; + &#39;*&#39;)
}
}
// Android Resolver Exclusions End
android {
compileSdkVersion 29
buildToolsVersion &#39;30.0.3&#39;
dexOptions{
javaMaxHeapSize &#34;4g&#34;
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
minSdkVersion 24
targetSdkVersion 29
multiDexEnabled true
applicationId &#39;com.sturgeon.test&#39;
ndk {
abiFilters &#39;armeabi-v7a&#39;, &#39;arm64-v8a&#39;
}
versionCode 4
versionName &#39;0.9.0&#39;
}
lintOptions {
disable &#39;MissingTranslation&#39;
abortOnError false
}
aaptOptions {
noCompress = [&#39;.unity3d&#39;, &#39;.ress&#39;, &#39;.resource&#39;, &#39;.obb&#39;]
}
signingConfigs {
release {
storeFile file(&#39;F:/WorkSpace/Project/Client//user.keystore&#39;)
storePassword &#39;dw&#39;
keyAlias &#39;test&#39;
keyPassword &#39;12345678&#39;
}
}
buildTypes {
debug {
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile(&#39;proguard-android.txt&#39;), &#39;proguard-unity.txt&#39;
jniDebuggable true
}
release {
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile(&#39;proguard-android.txt&#39;), &#39;proguard-unity.txt&#39;
signingConfig signingConfigs.release
}
}
packagingOptions {
doNotStrip &#39;*/armeabi-v7a/*.so&#39;
doNotStrip &#39;*/arm64-v8a/*.so&#39;
}
bundle {
language {
enableSplit = false
}
density {
enableSplit = false
}
abi {
enableSplit = true
}
}
}
页:
[1]