最近切换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 的项目:
-
在Project Settings > Player > Android > Publishing Settings > Build ,同时选择:
- Custom Main Gradle Template ,
- Custom Launcher Gradle Template 。
-
将以下更改应用于两个生成的文件:
Assets/Plugins/Android/mainTemplate.gradle
Assets/Plugins/Android/launcherTemplate.gradle
如果存在,请删除文件顶部的以下注释:
// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
然后修改
compileSdkVersion
和buildToolsVersion
如下:compileSdkVersion 30 buildToolsVersion '30.0.3'
建设时Unity将下载内建工具版本30.0.3并用它来建立你的项目,同时保持选定targetSdkVersion
。 targetSdkVersion
版本不会变,只是编译版本用30
参考网址 https://developers.google.com/ar/develop/unity-arf/android-12-build