Slo*_*nho 38 java fonts android android-5.0-lollipop
由于某种原因在棒棒糖,我得到这个错误,因为棒棒糖是如此新的我无法找到为什么在任何地方,我不知道如何弄明白.在此先感谢Logcat错误:
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.bent.MissionaryTracker/com.bent.MissionaryTracker.MainActivity}:
java.lang.RuntimeException: Font asset not found helvetica.ttf
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.RuntimeException: Font asset not found helvetica.ttf
at android.graphics.Typeface.createFromAsset(Typeface.java:190)
at com.bent.MissionaryTracker.MainActivity.onCreate(MainActivity.java:57)
at android.app.Activity.performCreate(Activity.java:5933)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
... 10 more
Run Code Online (Sandbox Code Playgroud)
编辑:这是导致错误的代码
title = (TextView) findViewById(R.id.title);
Typeface font = Typeface.createFromAsset(getAssets(), "helvetica.ttf");
title.setTypeface(font);
Run Code Online (Sandbox Code Playgroud)
我的项目文件夹中的assets文件夹中有helvetica.ttf.
编辑:此应用程序适用于所有设备,直到5.0,所以由于某种原因5.0 5.0无法识别我的资产文件夹中的文件.
我试图在我的资源文件夹中发布它的截图,但我没有足够的声誉来发布图像.
Pen*_*zzz 45
现在最好使用自定义字体这种方法
将字体存储在res/font中
要使用字体:
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);
Run Code Online (Sandbox Code Playgroud)
小智 30
在我意识到我没有在.otf文件之前放置"fonts /"之前我也遇到过这个问题
Typeface font = Typeface.createFromAsset(getAssets(),"fonts/TTMastersDEMOBlack.ttf");
Run Code Online (Sandbox Code Playgroud)
如果更改目录不起作用,可能是由于Android团队已经解决了一个问题,但没有及时赶上5.0.这一切都在这里解释:
https://code.google.com/p/android-developer-preview/issues/detail?id=608&thanks=608&ts=1404735239
解决方法(至少对我而言)是使用TTX修复字体文件,如链接问题中所述.
如果你没有python专业知识,让TTX工作可能会有点麻烦,所以我最终下载了包含TTX的Adobe的AFDKO.你必须运行'ttx yourfontfile.ttf',它将你的文件转换为.ttx然后再次运行'ttx yourfontfile.ttx'以获得一个适用于5.0的新.ttf.
小智 5
只需将资源文件夹放在主目录中即可.这样做之后:
Typeface typeface=Typeface.createFromAsset(getAssets(),"OpenSans-Light.ttf");
textView.setTypeface(typeface);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41704 次 |
| 最近记录: |