kirin77 发表于 2021-4-20 10:00

Unity 出包 总是卡在Building Gradle project?

Unity版本 2018.4.3f1

kirin77 发表于 2021-4-20 10:09

也是在昨天刚学这一块,被卡了将近大半天。
之前一直在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("org.gradle.daemon=false");
      File.WriteAllLines(gradlePropertiesFile,properties);
    }
}

#endifAndroidStudio的使用过程中也有人提到了类似的方法https://blog.csdn.net/marryvivien/article/details/54573645
注:
因为在我的电脑上使用第一种方法后,立刻流畅了起来。
在此基础上干掉守护进程后,只是感觉上快了一些。
至于第二种方法究竟有没有效果,有这种问题的可以试一下。
1月24日补充。
值得注意的是,在进行了以上设置后,开启vpn仍然会出现连接上的error导致build失败。
我在关闭vpn后,该问题便消失了。

jquave 发表于 2021-4-20 10:10

请问下 题主这个问题是怎么解决的呢?

FeastSC 发表于 2021-4-20 10:13

build.gradle文件:
// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN

buildscript {
    repositories {
      google()
      jcenter()
                mavenCentral()
                maven{
                        url 'https://maven.google.com/'
                        name 'Google'
                }
    }

    dependencies {
      classpath 'com.android.tools.build:gradle:3.2.0'
}
}

allprojects {
    repositories {
      google()
      jcenter()
      flatDir {
            dirs 'libs'
      }
                mavenCentral()
                maven{
                        url 'https://maven.google.com/'
                        name 'Google'
                }
    }
}

// Android Resolver Repos Start
( + (rootProject.subprojects as List)).each {
    ext {
      it.setProperty("android.useAndroidX", true)
      it.setProperty("android.enableJetifier", true)
    }
}
( + (rootProject.subprojects as List)).each { project ->
    project.repositories {
      maven {
            url "https://maven.google.com"
      }
      maven {
            url "file:///F:/WorkSpace/Project/Client/Assets/GeneratedLocalRepo/Firebase/m2repository" // Assets/Firebase/Editor/AnalyticsDependencies.xml:18, Assets/Firebase/Editor/AppDependencies.xml:22, Assets/Firebase/Editor/MessagingDependencies.xml:20
      }
      maven {
            url "https://maven.google.com/" // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7
      }
      maven {
            url "file:///F:/WorkSpace/Project/Client/Assets/GeneratedLocalRepo/GooglePlayGames/Editor/m2repository" // Assets/GooglePlayGames/Editor/GooglePlayGamesPluginDependencies.xml:11
      }
      mavenLocal()
      jcenter()
      mavenCentral()
    }
}
// Android Resolver Repos End
apply plugin: 'com.android.application'


dependencies {
// Android support Start
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:customtabs:28.0.0'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
// Android support End
// Android gms Start
    implementation 'com.google.android.gms:play-services-ads:18.0.0'
// Android gms End

    implementation fileTree(dir: 'libs', include: ['*.jar'])
// Android Resolver Dependencies Start
    implementation 'com.android.support:appcompat-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency(System.Object
    implementation 'com.android.support:cardview-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency(System.Object
    implementation 'com.android.support:customtabs:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency(System.Object
    implementation 'com.android.support:support-v4:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency(System.Object
    implementation 'com.facebook.android:facebook-applinks:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:6
    implementation 'com.facebook.android:facebook-core:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:5
    implementation 'com.facebook.android:facebook-gamingservices:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:9
    implementation 'com.facebook.android:facebook-login:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:7
    implementation 'com.facebook.android:facebook-share:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:8
    implementation 'com.google.android.gms:play-services-ads:19.5.0' // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7
    implementation 'com.google.android.gms:play-services-base:17.5.0' // Assets/Firebase/Editor/AppDependencies.xml:17
    implementation 'com.google.firebase:firebase-analytics:18.0.0' // Assets/Firebase/Editor/MessagingDependencies.xml:15
    implementation 'com.google.firebase:firebase-analytics-unity:7.0.2' // Assets/Firebase/Editor/AnalyticsDependencies.xml:18
    implementation 'com.google.firebase:firebase-app-unity:7.0.2' // Assets/Firebase/Editor/AppDependencies.xml:22
    implementation 'com.google.firebase:firebase-common:19.3.1' // Assets/Firebase/Editor/AppDependencies.xml:13
    implementation 'com.google.firebase:firebase-messaging:21.0.0' // Assets/Firebase/Editor/MessagingDependencies.xml:13
    implementation 'com.google.firebase:firebase-messaging-unity:7.0.2' // Assets/Firebase/Editor/MessagingDependencies.xml:20
    implementation 'com.google.games:gpgs-plugin-support:0.10.12' // Assets/GooglePlayGames/Editor/GooglePlayGamesPluginDependencies.xml:11
    implementation 'com.parse.bolts:bolts-android:1.4.0' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:4
// Android Resolver Dependencies End
    implementation(name: 'billing-3.0.1', ext:'aar')
    implementation(name: 'common', ext:'aar')
    implementation(name: 'facebook-android-wrapper-8.1.1', ext:'aar')
    implementation(name: 'googlemobileads-unity', ext:'aar')
    implementation(name: 'unityOBBDownloader', ext:'aar')
    implementation project(':FirebaseApp.androidlib')
    implementation project(':GoogleMobileAdsPlugin.androidlib')
    implementation project(':GooglePlayGamesManifest.plugin')
    implementation project(':unity-android-resources')
}

// Android Resolver Exclusions Start
android {
packagingOptions {
      exclude ('/lib/armeabi/*' + '*')
      exclude ('/lib/mips/*' + '*')
      exclude ('/lib/mips64/*' + '*')
      exclude ('/lib/x86/*' + '*')
      exclude ('/lib/x86_64/*' + '*')
}
}
// Android Resolver Exclusions End
android {
    compileSdkVersion 29
    buildToolsVersion '30.0.3'
       
        dexOptions{
                javaMaxHeapSize "4g"
        }
       
    compileOptions {
      sourceCompatibility JavaVersion.VERSION_1_8
      targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
      minSdkVersion 24
      targetSdkVersion 29
                multiDexEnabled true
      applicationId 'com.sturgeon.test'
      ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
      }
      versionCode 4
      versionName '0.9.0'
    }

    lintOptions {
                disable 'MissingTranslation'
      abortOnError false
    }

    aaptOptions {
      noCompress = ['.unity3d', '.ress', '.resource', '.obb']
    }

    signingConfigs {
      release {
            storeFile file('F:/WorkSpace/Project/Client//user.keystore')
            storePassword 'dw'
            keyAlias 'test'
            keyPassword '12345678'
      }
    }

    buildTypes {
      debug {
            minifyEnabled false
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
            jniDebuggable true
      }
      release {
            minifyEnabled false
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
            signingConfig signingConfigs.release
      }
    }

    packagingOptions {
      doNotStrip '*/armeabi-v7a/*.so'
      doNotStrip '*/arm64-v8a/*.so'
    }

    bundle {
      language {
            enableSplit = false
      }
      density {
            enableSplit = false
      }
      abi {
            enableSplit = true
      }
    }
}
页: [1]
查看完整版本: Unity 出包 总是卡在Building Gradle project?