我为统一创建了一个Android本机库,该库是在统一游戏屏幕上显示屏幕的片段。
一切正常,但是现在我正尝试将自定义字体添加到我的Android库布局中。但是通过将任何新字体添加到android库中'res'文件夹下的font文件夹并导出到arr文件,我在尝试构建和运行时遇到了这个错误:
错误文字:
CommandInvokationFailure:Gradle构建失败。 C:/程序 文件/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”
stderr [
失败:构建失败,并出现异常。
出了什么问题:任务':unity-android-resources:packageReleaseResources'的执行失败。
C:\ Users \ Shetab \ Documents \ UnityPlugin \ Temp \ gradleOut \ unity-android-resources \ res \ font \ bahush.TTF:1:1: 错误:序言中不允许包含内容。
尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的见解。
- 获得更多帮助
在7秒钟内无法建立] stdout [NDK缺少“平台”目录。 如果使用的是NDK,请验证ndk.dir是否设置为有效的NDK。 目录。当前设置为C:\ sdk \ ndk-bundle。如果不是 使用NDK,从ANDROID_NDK_HOME取消设置NDK变量,或者 local.properties删除此警告。
在不一致的位置观察到的程序包ID'build-tools; 29.0.0-rc2' 'C:\ sdk \ 29.0.0-rc2'(预期为'C:\ sdk \ build-tools \ 29.0.0-rc2') 在不一致的位置观察到的软件包标识“工具” 'C:\ sdk \ toolsXXXX'(预期为'C:\ sdk \ tools')已观察到的软件包 在'C:\ sdk \ tools'中的id'tools'。跳过“ C:\ sdk \ toolsXXXX”中的重复项 NDK缺少“平台”目录。如果您使用的是NDK,请确认 ndk.dir设置为有效的NDK目录。当前设置为 C:\ sdk \ ndk捆绑包。如果您不使用NDK,请取消设置NDK变量 从ANDROID_NDK_HOME或local.properties中删除该警告。
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 :unity-android-resources:preBuild截至日期 :unity-android-resources:preReleaseBuild截至日期 :unity-android-resources:checkReleaseManifest :unity-android-resources:prepareReleaseDependencies :unity-android-resources:compileReleaseAidl :unity-android-resources:compileReleaseNdk NO-SOURCE :unity-android-resources:compileLint :unity-android-resources:copyReleaseLint没有来源 :unity-android-resources:mergeReleaseShaders :unity-android-resources:compileReleaseShaders :unity-android-resources:generateReleaseAssets :unity-android-resources:mergeReleaseAssets :unity-android-resources:mergeReleaseProguardFiles截止日期 :unity-android-resources:packageReleaseRenderscript NO-SOURCE :unity-android-resources:compileReleaseRenderscript :unity-android-resources:generateReleaseResValues :unity-android-resources: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失败13可采取行动 任务:已执行12个,最新1个]退出代码:1 UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit等待ForProcessToExit, System.String errorMsg)UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit等待ForProcessToExit, System.String errorMsg)UnityEditor.Android.AndroidJavaTools.RunJava (System.String参数,System.String工作目录,System.Action
1 progress, System.String error) UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, System.Action
1 进度)作为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.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext上下文) UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
答案 0 :(得分:0)
在这种情况下,无法从res/font
文件夹中获取自定义字体。
为此,您必须将字体保存在android assets
文件夹中,并以编程方式在代码中加载它:
TextView tx = (TextView)findViewById(R.id.textview1);
Typeface custom_font = Typeface.createFromAsset(getAssets(), "fonts/abc.ttf");
tx.setTypeface(custom_font);