首页 > 解决方案 > unity native plugin-Content is not allowed in prolog

问题描述

我为统一创建了一个 android 本机库,它是一个在统一游戏屏幕上显示屏幕的片段。

一切正常,但现在我正在尝试将自定义字体添加到我的 android 库布局中。但是通过将任何新字体添加到android库中'res'文件夹下的字体文件夹并导出到arr文件,我在尝试构建和运行时统一收到此错误:

在此处输入图像描述

错误文字:

CommandInvokationFailure:Gradle 构建失败。C:/Program Files/Java/jdk1.8.0_211\bin\java.exe -classpath "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.4.jar " org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx2048m" "assembleRelease"

标准错误[

FAILURE:构建失败并出现异常。

  • 出了什么问题:任务':unity-android-resources:packageReleaseResources'执行失败。

    C:\Users\Shetab\Documents\UnityPlugin\Temp\gradleOut\unity-android-resources\res\font\bahush.TTF:1:1:错误:prolog 中不允许内容。

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • 在https://help.gradle.org获得更多帮助

BUILD FAILED in 7s ] stdout[ NDK 缺少“平台”目录。如果您使用的是 NDK,请验证 ndk.dir 是否设置为有效的 NDK 目录。当前设置为 C:\sdk\ndk-bundle。如果您不使用 NDK,请从 ANDROID_NDK_HOME 或 local.properties 中取消设置 NDK 变量以删除此警告。

观察到的包 id 'build-tools;29.0.0-rc2' 在不一致的位置'C:\sdk\29.0.0-rc2' (预期的'C:\sdk\build-tools\29.0.0-rc2')观察到的包id 'tools' 在不一致的位置 'C:\sdk\toolsXXXX' (预期的 'C:\sdk\tools') 已经在 'C:\sdk\tools' 中观察到包 id 'tools'。在 'C:\sdk\toolsXXXX' NDK 跳过重复项缺少“平台”目录。如果您使用的是 NDK,请验证 ndk.dir 是否设置为有效的 NDK 目录。当前设置为 C:\sdk\ndk-bundle。如果您不使用 NDK,请从 ANDROID_NDK_HOME 或 local.properties 中取消设置 NDK 变量以删除此警告。

CompileOptions.bootClasspath 属性已被弃用,并计划在 Gradle 5.0 中删除。请改用 CompileOptions.bootstrapClasspath 属性。setTestClassesDir(File) 方法已被弃用,并计划在 Gradle 5.0 中删除。请改用 setTestClassesDirs(FileCollection) 方法。getTestClassesDir() 方法已被弃用,并计划在 Gradle 5.0 中删除。请改用 getTestClassesDirs() 方法。ConfigurableReport.setDestination(Object) 方法已被弃用,并计划在 Gradle 5.0 中删除。请改用 ConfigurableReport.setDestination(File) 方法。:preBuild UP-TO-DATE :preReleaseBuild UP-TO-DATE :checkReleaseManifest :preDebugBuild UP-TO-DATE :prepareUnitylibraryDebugLibrary : generateReleaseResources :unity-android-resources:packageReleaseResources C:\Users\Shetab\Documents\UnityPlugin\Temp\gradleOut\unity-android-resources\res\font\bahush.TTF:1:1: 错误:序言中不允许内容. :unity-android-resources:packageReleaseResources FAILED 13 个可操作任务:12 个已执行,1 个最新] 退出代码:1 UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System .String errorMsg) UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System 。行动 packageReleaseResources C:\Users\Shetab\Documents\UnityPlugin\Temp\gradleOut\unity-android-resources\res\font\bahush.TTF:1:1:错误:prolog 中不允许内容。:unity-android-resources:packageReleaseResources FAILED 13 个可操作任务:12 个已执行,1 个最新] 退出代码:1 UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System .String errorMsg) UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System 。行动 packageReleaseResources C:\Users\Shetab\Documents\UnityPlugin\Temp\gradleOut\unity-android-resources\res\font\bahush.TTF:1:1:错误:prolog 中不允许内容。:unity-android-resources:packageReleaseResources FAILED 13 个可操作任务:12 个已执行,1 个最新] 退出代码:1 UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System .String errorMsg) UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System 。行动 错误:prolog 中不允许有内容。:unity-android-resources:packageReleaseResources FAILED 13 个可操作任务:12 个已执行,1 个最新] 退出代码:1 UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System .String errorMsg) UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System 。行动 错误:prolog 中不允许有内容。:unity-android-resources:packageReleaseResources FAILED 13 个可操作任务:12 个已执行,1 个最新] 退出代码:1 UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System .String errorMsg) UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System 。行动1 progress, System.String error) UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, System.Action1个进度)作为GradleInvokationException重新抛出:Gradle构建失败UnityEditor.Android.GradleWrapper.Run(System.String workingdir,System.String任务,System.Action`1个进度)UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute(UnityEditor.Android .PostProcessor.PostProcessorContext 上下文) UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTask​​s (UnityEditor.Android.PostProcessor.PostProcessorContext 上下文) UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()

标签: androidunity3d

解决方案


res/font在这种情况下,无法从文件夹中获取自定义字体。为此,您必须将字体保存在 androidassets文件夹中并在代码中以编程方式加载它:

   TextView tx = (TextView)findViewById(R.id.textview1);

   Typeface custom_font = Typeface.createFromAsset(getAssets(),  "fonts/abc.ttf");

   tx.setTypeface(custom_font);

推荐阅读