问题描述
我正在Mac上使用Unity,并试图在Android上构建游戏。
该项目在iOS上运行良好,这是我第一次尝试在Android上进行构建。
我遇到2个错误-它们似乎与gradle
有关。
Gradle Failed to fetch dependencies.
Failed to run '/Applications/MAMP/htdocs/BQvF/BQ/Temp/PlayServicesResolverGradle/gradlew --no-daemon -b "/Applications/MAMP/htdocs/BQvF/BQ/Temp/PlayServicesResolverGradle/PlayServicesResolver.scripts.download_artifacts.gradle" "-PANDROID_HOME=/Applications/Unity/Hub/Editor/2020.1.2f1/PlaybackEngines/Androidplayer/SDK" "-PTARGET_DIR=/Applications/MAMP/htdocs/BQvF/BQ/Assets/Plugins/Android" "-PMAVEN_REPOS=" "-PPACKAGES_TO_copY=com.android.support:support-v4:25.3.1;com.android.support:appcompat-v7:25.3.1;com.android.support:cardview-v7:25.3.1;com.android.support:customtabs:25.3.1;com.parse.bolts:bolts-android:1.4.0;com.facebook.android:facebook-core:[7.1.0,8);com.facebook.android:facebook-applinks:[7.1.0,8);com.facebook.android:facebook-login:[7.1.0,8);com.facebook.android:facebook-share:[7.1.0,8);com.facebook.android:facebook-gamingservices:[7.1.0,8)" "-PUSE_JETIFIER=0" "-PDATA_BINDING_VERSION=3.6.0"'
stdout:
stderr:
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7
at org.codehaus.groovy.vmplugin.VMPluginFactory.<clinit>(VMPluginFactory.java:43)
FAILURE: Build Failed with an exception.
* What went wrong:
Could not create an instance of type org.gradle.initialization.DefaultSettings_Decorated.
> Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD Failed in 2s
第二个错误是
Unable to determine which Android packages are installed.
Failed to run '/Applications/Unity/Hub/Editor/2020.1.2f1/PlaybackEngines/Androidplayer/SDK/tools/bin/sdkmanager --list --verbose'
stdout:
stderr:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuLeversion.<init>(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.sdkmanager.sdkmanagerCli.main(sdkmanagerCli.java:73)
at com.android.sdklib.tool.sdkmanager.sdkmanagerCli.main(sdkmanagerCli.java:48)
Caused by: java.lang.classNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.classLoader.loadClass(ClassLoader.java:522)
... 5 more
exit code: 1
解决方法
您是否安装了NDK?统一转到首选项,检查您是否具有NDK的路径,我将提供有关如何构建apk的教程的链接。 您可以查看该检查是否正确地完成了所有操作 https://youtu.be/j0L3SDYyMJI
,要解决此问题,我做了两件事:
- 将Gradle更新为5.5.1,并且
- Unity无法识别我安装的新Java。所以我删除了所有JDK,然后只安装了1.8
像魅力一样工作
,如果您在项目设置 -> 播放器 -> 发布设置中使用自定义密钥库,请在两个字段中输入您的密码。 然后转到 Assets -> External Dependency Manager -> Android Resolver -> Force Resolve。