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很快输出成功,问题解决!