Unity 2020.2.6 Android 构建 aptOptions noCompress 属性定义错误

Cum*_*hin 6 unity-game-engine

今天我尝试使用 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。

我在项目中拥有的插件是;

  • Facebook
  • 游戏分析
  • 调整

主模板.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 中进行这样的修改

\n
aaptOptions {\n    noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ')\n    ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"\n}\n
Run Code Online (Sandbox Code Playgroud)\n


jus*_*est 2

对我来说,有效的方法是取消选中“播放器设置”>“发布设置”中构建的“自定义 Gradle 模板”选项。

编辑:好吧,事实证明我无法再复制它了,而且我不确定是什么样的魔法允许它发生......

另一方面,我找到了导致我出现问题的原因。这个问题是由我正在使用的一个插件引起的,因为我正在导入它的旧版本,并且由于某种原因它不断导入 gradle 文档和其他 Android 相关的内容,这些内容已被弃用。

我通过导入插件的 Unity 包中除 Android 文件夹之外的所有内容、所有编辑器的 gradle 和 gradle 相关内容(我根本没有导入 Editor 文件夹)和 Plugins 文件夹来修复此问题。