找不到Android运行时异常字体资产

时间:2015-11-24 07:54:32

标签: java android android-fonts

这是我的代码和屏幕截图我尝试设置自定义字体字体但是当字体文件位于资源文件夹中时,发现运行时异常未找到字体资源。我错过了什么吗?

Typeface font = Typeface.createFromAsset(getAssets(), "font/terminal.ttf");
((TextView) findViewById(R.id.weatherHeadingTV)).setTypeface(font);

enter image description here screenshot of android studio project

13 个答案:

答案 0 :(得分:8)

文件夹名称必须为'fonts'而非'font'

Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/" + font);

答案 1 :(得分:5)

您的字体资源文件夹名称不正确。您应将文件夹命名为Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that PATH includes the directory with Oracle Instant Client libraries in C:\xampp\htdocs\test.php on line 3 ,而不是fonts。同时更改您的代码:

font

答案 2 :(得分:4)

  1. 文件夹的名称应为“fonts”而不是“font”
  2. 请注意,您的“fonts”文件夹位于“assets”文件夹下(该文件夹应位于“main”文件夹下,而不是“res”文件夹下) 我花了太长时间才弄明白这个......

答案 3 :(得分:3)

如果您使用的是Android Gradle插件版本2.2.0-alphaX的Instant Run,则这是一个已知错误。

解决方法是关闭“即时运行”,直到问题得到解决。

您可以在此处跟踪:https://code.google.com/p/android/issues/detail?id=212849&can=1&q=subcomponent%3DTools-Studio%20-has%3Aproject%20attachments%3D0&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened&start=7700

答案 4 :(得分:2)

项目中有资产且使用AS的alpha版本时会出现常见错误。这似乎是Android studio构建系统中的一个错误。一个简单的解决方法是在运行之前清理项目,这应该可以解决您面临的问题。

答案 5 :(得分:1)

我尝试了另一种工作正常的字体文件所以我得出结论,早期的字体文件已损坏。感谢@Miduhun MP,@ Gowtham Raj和@jagan reddy

答案 6 :(得分:1)

我遇到了同样的问题,并设法修复它。最初我认为字体文件已损坏,但它们并非如此。然后我认为Android Studio不喜欢.ttf个文件,因为他们是唯一没有工作的人。事实证明这些字体并没有错。

FIX:点击Build > Clean project。我马上把它修好了。

答案 7 :(得分:0)

字体字体= Typeface.createFromAsset(this.getAssets()," font / terminal.ttf");

((TextView)findViewById(R.id.weatherHeadingTV))。setTypeface(typeface);

答案 8 :(得分:0)

如果您使用AndroidAnnotations,请在app build.gradle中验证资产文件夹是否正常:ex:main / src / assets。

如果更改了de font,请从设备/模拟器中卸载应用程序,然后重新运行。

代码:

public static void setFontFace(Context context, TextView textView) {
  Typeface type = Typeface.createFromAsset(context.getAssets(), "myfont.ttf");
  textView.setTypeface(type);
}

答案 9 :(得分:0)

我遇到的问题是Android 7+不接受.woff字体。所以我换成了.ttf字体。

答案 10 :(得分:0)

对我来说,字体文件本身已损坏。我尝试了另一个让它工作。

答案 11 :(得分:0)

使用此方法:

final Typeface typeface = ResourcesCompat.getFont(context, R.font.X);

答案 12 :(得分:-1)

我已经调查了所有答案,但没有一个对我有效。 我在阅读完文档后找到了一个新的解决方案。 以下是要遵循的步骤:

  1. 转到文件菜单
  2. 在new中,转到文件夹并创建资源文件夹
  3. 将您的字体文件粘贴到此资源文件夹
  4. 使用字体属性在代码中使用。

    字体类型= Typeface.createFromAsset(getAssets(),“myfont.ttf”); textView.setTypeface(类型);

  5. 现在,您已准备好使用您喜欢的字体。