Unity使用Gradle出apk包问题记录:A problem occurred configuring root project ‘Gradle‘.

unity2022.3.8f1c1 使用 Gradle 出包。(2019以上无法选择internal)

最开始有遇到问题:Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for detailsd,这个据说是RAM不足会影响的,简单清理以后就好了,之后遇到的问题如下:

*What went wrong:
A problem occurred configuring root project 'Gradle'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not download fastutil-8.4.0.jar (it.unimi.dsi:fastutil:8.4.0)
      > Could not get resource 'https://plugins.gradle.org/m2/it/unimi/dsi/fastutil/8.4.0/fastutil-8.4.0.jar'.
         > Premature end of Content-Length delimited message body (expected: 19,052,190; received: 12,844,960)

发现自己的Gradlle配置可能存在问题,故进行了如下操作:

我的是在:E:\Unity 3D\Unity\Installs\2022.3.8f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates,这个文件夹下所有文件中的repositories {**ARTIFACTORYREPOSITORY**这句话的后面都加上maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}(我的只有settingTemplate中有),但又有如下错误:

Error resolving plugin [id: 'com.android.application', version: '7.1.2', apply: false]
> Could not resolve all dependencies for configuration 'detachedConfiguration1'.
   > Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository 'maven(http://maven.aliyun.com/nexus/content/groups/public/)' to redirect to a secure protocol (like HTTPS) or allow insecure protocols. See https://docs.gradle.org/7.2/dsl/org.gradle.api.artifacts.repositories.UrlArtifactRepository.html#org.gradle.api.artifacts.repositories.UrlArtifactRepository:allowInsecureProtocol for more details. 

出现了新的问题,证明改动的位置有效。

接下来的解决办法是:在settingsTemplate.gradle的文件中,在repositories的闭包中添加:

maven { url "https://jitpack.io" }
maven { url 'https://maven.aliyun.com/repository/releases' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/public' }

该方法参考:http://t.csdnimg.cn/3BI8n

可以去掉这些“**ARTIFACTORYREPOSITORY**”,

最终settingTemplate.gradle内容如下:

pluginManagement {
    repositories {
        maven { url "https://jitpack.io" }
        maven { url 'https://maven.aliyun.com/repository/releases' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/central' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}

include ':launcher', ':unityLibrary'
**INCLUDES**

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositories {
        maven { url "https://jitpack.io" }
        maven { url 'https://maven.aliyun.com/repository/releases' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/central' }
        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        google()
        mavenCentral()
        flatDir {
            dirs "${project(':unityLibrary').projectDir}/libs"
        }
    }
}

最终apk很快输出成功,问题解决!

Unity是一款跨平台的游戏引擎,支持多种平台的游戏开发。在Android平台上,Unity使用Gradle来构建项目。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。下面是关于Unity Gradle的介绍和演示: 1. Gradle版本 Unity使用Gradle版本可以在以下路径中找到:C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle。 2. Gradle构建 Unity使用Gradle来构建Android项目。在Unity中,你可以通过File->Build Settings->Android来打开Android Build Settings窗口。在这个窗口中,你可以选择Gradle作为构建系统。选择Gradle后,你可以在Player Settings中设置Gradle的版本和构建类型。 3. Gradle依赖 在module的gradle文件中,你可以添加依赖。例如,如果你想添加Google Play Services库,你可以在module的gradle文件中添加以下代码: ```gradle dependencies { implementation 'com.google.android.gms:play-services:11.8.0' } ``` 4. AndroidManifest替换变量 在module的gradle文件中,你可以使用AndroidManifest替换变量。例如,如果你想在AndroidManifest中使用应用程序的版本号,你可以在module的gradle文件中添加以下代码: ```gradle android { defaultConfig { manifestPlaceholders = [appVersionCode: versionCode, appVersionName: versionName] } } ``` 然后,在AndroidManifest.xml文件中,你可以使用以下代码来引用这些变量: ```xml android:versionCode="${appVersionCode}" android:versionName="${appVersionName}" ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值