RuntimeException:找不到字体资产optimale_bold.ttf

时间:2015-10-14 16:22:42

标签: android runtimeexception custom-font

以下是错误行:

Typeface typeface = Typeface.createFromAsset(getAssets(), "optimale_bold.tff");

这是错误日志cat:

Caused by: java.lang.RuntimeException: Font asset not found optimale_bold.tff
at android.graphics.Typeface.createFromAsset(Typeface.java:192)
at com.leontheprofessional.test.whorepresentsyou.activity.MainActivity.onCreate(MainActivity.java:100)
at android.app.Activity.performCreate(Activity.java:6020)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2284)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2393) 
at android.app.ActivityThread.access$800(ActivityThread.java:151) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5351) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703) 

这是资产文件夹的结构:
main目录中:

|-assets
|--optimale_bold.ttf
|-java
|-res
AndrodMainifest.xml

在AndroidStudio的Android视图中:

|-app
|--manifest
|--java
|--res
|--assets
|---optimale_bold.tff

我仔细检查了app.iml文件,包含了这样一行:

<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />

可能出现什么问题?

PS: 我检查了这个post,并尝试了每个解决方案。但都没有效果。这不是一个重复的帖子。请帮忙解决问题。

对于那些可能需要的人:

compileSdkVersion 23
buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "blahblah"
    minSdkVersion 11
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}

4 个答案:

答案 0 :(得分:10)

我认为你有一些错误拼写错误。您的字体扩展名应为。 ttf ,而不是。 tff

答案 1 :(得分:1)

最好在资源中添加fonts文件夹,然后使用此行

Typeface face1= Typeface.createFromAsset(getAssets(), "fonts/optimale_bold.tff");

还要确保assets文件夹与java和res。

位于同一级别

答案 2 :(得分:1)

Typeface face1= Typeface.createFromAsset(getAssets(), "fonts/optimale_bold.ttf");

字体名称:extentions应为ttf,而不是tff

答案 3 :(得分:0)

emm,在我的情况下,这是因为ttf资源在我复制时已损坏,所以我重复复制并修复它