字体资产未找到helvetica.ttf棒棒糖

2022-08-31 23:44:02

由于棒棒糖的某种原因,我得到了这个错误,因为棒棒糖是如此之新,我无法在任何地方找到原因,我不知道如何弄清楚。提前感谢 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

编辑:这是引发错误的代码

    title = (TextView) findViewById(R.id.title);


    Typeface font = Typeface.createFromAsset(getAssets(), "helvetica.ttf");
    title.setTypeface(font);

我在项目文件夹的资产文件夹中有helvetica.ttf。

编辑:此应用程序在5.0之前适用于所有设备,因此由于某种原因5.0无法识别我的资产文件夹中的文件。

我试图在我的资产文件夹中发布它的屏幕截图,但我没有足够的声誉来发布图像。


答案 1

如果您正在Android Studio上工作,请确保您的资源文件夹位于main而不是res下 这对我有用


答案 2

现在,最好将此方法用于自定义字体

res/font 格式存储字体

要获得字体使用:

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

推荐