Unity Gradle编译Android 12的一些坑

在使用Unity并切换到Gradle编译方式时,遇到与FacebookSdk集成的错误:BuildWarning:Mappingnewnstooldns,java.lang.AssertionError。此问题与Android 12的兼容性有关。解决方法包括在ProjectSettings>Player>Android>PublishingSettings>Build中选择CustomMainGradleTemplate和CustomLauncherGradleTemplate,并修改生成的mainTemplate.gradle和launcherTemplate.gradle文件,将compileSdkVersion和buildToolsVersion设置为30.0.3。这允许Unity下载相应版本工具并建立项目,同时保持targetSdkVersion不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近切换Unity的编译方式为Gradle  接入Facebook Sdk时报错

 Build Warning : Mapping new ns to old ns

java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE (class com.sun.tools.javac.util.UnsharedNameTable$NameImpl)

 解决办法:

我们正在与 Unity 合作解决这种不兼容问题。同时,按照说明构建一个面向 Android 12 的项目:

  1. Project Settings > Player > Android > Publishing Settings > Build ,同时选择:

    1. Custom Main Gradle Template ,
    2. Custom Launcher Gradle Template 。
  2. 将以下更改应用于两个生成的文件:

    • Assets/Plugins/Android/mainTemplate.gradle
    • Assets/Plugins/Android/launcherTemplate.gradle

    如果存在,请删除文件顶部的以下注释:

    // GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
    

    然后修改compileSdkVersionbuildToolsVersion如下:

    compileSdkVersion 30
    buildToolsVersion '30.0.3'

建设时Unity将下载内建工具版本30.0.3并用它来建立你的项目,同时保持选定targetSdkVersion 。  targetSdkVersion 版本不会变,只是编译版本用30




参考网址   https://developers.google.com/ar/develop/unity-arf/android-12-build

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值