由于某种原因在棒棒糖上,我得到了这个错误,因为棒棒糖是如此新的我无法找到原因,我不知道如何解决它。在此先感谢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);
我的项目文件夹中的assets文件夹中有helvetica.ttf。
编辑: 此应用程序适用于所有设备,直到5.0,所以由于某种原因5.0 5.0无法识别我的资产文件夹中的文件。
我试图在我的资源文件夹中发布它的截图,但我没有足够的声誉来发布图片。
答案 0 :(得分:74)
如果您正在使用Android Studio,请确保您的资源文件夹位于main下,而不是res 这对我有用
答案 1 :(得分:31)
现在最好使用自定义字体this approach
将字体存储在 res / font
中要使用字体:
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);
答案 2 :(得分:29)
在我意识到我没有在.otf文件
之前放置“fonts /”之前,我也遇到了这个问题$wpdb->query ("UPDATE $wpdb->postmeta SET `meta_value` = REPLACE(`meta_value`, \'%‚ %\') WHERE `meta_value` LIKE '‚'");
答案 3 :(得分:16)
这对我有用。在我的情况下,它不起作用,因为我在res中创建资产文件夹而不是在main中。
答案 4 :(得分:8)
如果更改目录不起作用,可能是由于Android团队已经修复了一个问题,但没有及时赶上5.0。这一切都在这里解释:
https://code.google.com/p/android-developer-preview/issues/detail?id=608&thanks=608&ts=1404735239
解决方法(至少对我而言)是使用TTX修复字体文件,如链接问题中所述。
如果您没有python专业知识,让TTX工作可能会有点麻烦,所以我最终下载了包含TTX的Adobe's AFDKO。你必须运行'ttx yourfontfile.ttf',它将你的文件转换为.ttx然后再次运行'ttx yourfontfile.ttx'以获得一个适用于5.0的新.ttf。
答案 5 :(得分:4)
我之前遇到过这个问题。我删除了x.ttf,然后解除了删除,尝试无锁运行。所以我的修复就是删除它并再次下载字体并将其粘贴到fonts /文件夹中,并且每件事情都运行良好。
答案 6 :(得分:4)
清理项目,它在android 6.0上帮助我
答案 7 :(得分:2)
好的伙计们,
我遇到了同样的问题。首先,我将字体加载逻辑崩溃证明:
/**
* Init method. This method must be called before any other call in this class.
*/
public static void init () {
fontPlain = createFont( "helvetica.ttf" , Typeface.NORMAL );
fontBold = createFont( "helveticab.ttf", Typeface.BOLD );
}
/**
* Load font from assets font folder.
*/
public static Typeface createFont (String font, int style) {
Typeface typeface;
try {
AssetManager assets = Kit.getAppContext().getAssets();
typeface = Typeface.createFromAsset( assets, "fonts" + File.separator + font );
}
catch (RuntimeException e) {
// createFromAsset() will throw a RuntimeException in case of error.
Log.e( Constants.TAG, "Unable to create font: " + font, e );
typeface = Typeface.defaultFromStyle( style );
}
return typeface;
}
然后我还在git中从这个项目中下载了另一种字体:
https://github.com/dimanchec3/Tutoriapps-Android/blob/master/assets/Helvetica.ttf
我意识到我的旧字体是56KB,这个新字体是84KB。我想我的字体版本较旧。
使用此字体前请确保您拥有正确的许可证。