今天我尝试使用 Unity 2020.2.6f1 构建 Android 游戏,但出现以下错误;
UnityException:错误 mainTemplate.gradle 文件正在使用旧的 aaptOptions noCompress 属性定义,该定义不包括 unityStreamingAssets 常量定义的类型。
我禁用了 Android Resolvers Patch gradle 和清单文件,但它不起作用。我尝试使用以下命令手动编辑 gradle:
aaptOptions {
noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ')
ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
}
Run Code Online (Sandbox Code Playgroud)
无论我在构建游戏时做什么,Unity 都会覆盖 gradle,我检查了项目中的预构建过程脚本,但我检查的脚本都没有更改 gradle' aaptOptions。
我在项目中拥有的插件是;
主模板.gradle:
buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
}
}
allprojects {
repositories {
google()
jcenter()
flatDir {
dirs 'libs'
}
}
}
apply plugin: 'com.android.library'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.android.installreferrer:installreferrer:1.0'
**DEPS**
}
android {
compileSdkVersion **APIVERSION**
buildToolsVersion '**BUILDTOOLS**'
defaultConfig {
multiDexEnabled true
minSdkVersion 19
targetSdkVersion 29
versionCode **VERSIONCODE**
versionName '**VERSIONNAME**'
}
dexOptions {
preDexLibraries false
javaMaxHeapSize "4g"
}
lintOptions {
abortOnError false
}
packagingOptions {
exclude 'jsr305_annotations/Jsr305_annotations.gwt.xml'
}
aaptOptions {
noCompress '.unity3d', '.ress', '.resource', '.obb'**STREAMING_ASSETS**
}
**SIGN**
buildTypes {
debug {
jniDebuggable true
}
release {
minifyEnabled false
**SIGNCONFIG**
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_8
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢。
小智 7
你应该在 mainTemplate.gradle 文件 \xef\xbc\x9a 中进行这样的修改
\naaptOptions {\n noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ')\n ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"\n}\nRun Code Online (Sandbox Code Playgroud)\n
对我来说,有效的方法是取消选中“播放器设置”>“发布设置”中构建的“自定义 Gradle 模板”选项。
编辑:好吧,事实证明我无法再复制它了,而且我不确定是什么样的魔法允许它发生......
另一方面,我找到了导致我出现问题的原因。这个问题是由我正在使用的一个插件引起的,因为我正在导入它的旧版本,并且由于某种原因它不断导入 gradle 文档和其他 Android 相关的内容,这些内容已被弃用。
我通过导入插件的 Unity 包中除 Android 文件夹之外的所有内容、所有编辑器的 gradle 和 gradle 相关内容(我根本没有导入 Editor 文件夹)和 Plugins 文件夹来修复此问题。