- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的应用程序因以下代码而崩溃。我正在尝试在 textView 中提供自定义字体。 Assets 目录没问题,因为我已经仔细检查过了。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView title = (TextView) findViewById(R.id.textView);
String BANGLA_FONT_SOLEMAN_LIPI = "/SolaimanLipi_Bold_10-03-12.ttf";
Typeface tf = Typeface.createFromAsset(getApplicationContext().getAssets(),
BANGLA_FONT_SOLEMAN_LIPI);
title.setTypeface(tf);
}
当应用程序崩溃时,它会产生以下错误日志:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gsl.banglafonttest/com.gsl.banglafonttest.MainActivity}: java.lang.RuntimeException: native typeface cannot be made
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.access$600(ActivityThread.java:174)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1382)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5409)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: native typeface cannot be made
at android.graphics.Typeface.<init>(Typeface.java:175)
at android.graphics.Typeface.createFromAsset(Typeface.java:149)
at com.gsl.banglafonttest.MainActivity.onCreate(MainActivity.java:17)
at android.app.Activity.performCreate(Activity.java:5122)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1150)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2328)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.access$600(ActivityThread.java:174)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1382)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5409)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
at dalvik.system.NativeStart.main(Native Method)
最佳答案
基本上有 4 种情况会导致这种情况:
1.你用错了扩展名
2.你把字体放在assets文件夹里而不是assets/fonts/
3.你把字体拼错了
4.字体需要小写(在我的例子中,解决方案是将 MyFont.ttf 重命名为 myfont.ttf,奇怪)
关于Android 应用程序在 Typeface.createFromAsset 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37519068/
在我的应用程序中,我有一个 textView,用户可以在其中设置字体和字体样式。我正在使用这一行来设置字体。 tvQuoteTextSample.setTypeface(Typeface.SERIF)
字体始终显示默认字体。 我的字体存储在 Assets /字体中。我尝试过使用其他字体,并重新编码字体。 PixlUI 库也没有解决问题。 MainActivity.java protected voi
在我的应用程序中,我从服务器动态下载字体并将它们保存到数据库中。有什么方法可以从 db 中的 blob 创建 Typaface 吗?当然我可以创建临时文件并从中加载数据,但这不是最好的方法 最佳答案
鉴于以下 react 代码: import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import 't
我已经使用 Typeface.js 转换了一些字体,默认字体 Century Gothic 工作正常。但是现在我正在尝试使用我上传的 Century Gothic Bold,但我不知道确切的名称是什么
我正在制作必须以“NASTALIQ.TTF”字体显示文本的 Android 应用程序。我将字体 ttf 文件放在项目的以下目录中: C:\Users\Zeeshan\AndroidStudioProj
简单的问题:Typeface.createFromAsset() 是否缓存?还是我应该在内存中保留一个引用以方便使用?我问的原因是因为我经常使用它(都是为了在许多 Activity/ View 中维护
我使用自定义字体绘制( Canvas )文本(准确地说:我使用自定义字体)。然而,这种字体不支持很多字符,因此一些(不受支持的)字符看起来不同。现在我问自己以下问题: 不受支持的角色看起来如何 - 外
在开始 Activity 中,我调用 FontFactory.init(getApplicationContext()); 将 Context 设置为 FontFactory 类。 我还有扩展 Tex
我正在尝试在我的 NotificationCompat.Builder 中添加一个 Typeface ->setContentTitle() 和 setContentText()。我通过 初始化了 T
我想更改对话框中 textview 中的字体: dialog = new Dialog(MyActivity.this); dialog.setContentView(R.layout.my_dial
如何在 NumberPicker 中更改字体类型。我尝试这样做,但字体没有改变。任何想法?P.S: color 和 textSize 有变化。 public class NumberPicker ex
我正在尝试在 ListView 的元素上使用自定义字体。所以在我的 ListViewAdapter 构造函数中我有: private Context context; private List pro
Typeface 类包含一个静态的 findFromCache 方法: https://android.googlesource.com/platform/frameworks/base/+/refs
我的应用程序因以下代码而崩溃。我正在尝试在 textView 中提供自定义字体。 Assets 目录没问题,因为我已经仔细检查过了。 @Override protected void onCreate
所以我有这个界面: public interface Utils{ static final Typeface FONT = Typeface.createFromAsset(getAsset
我在整个应用程序中都使用 Helvetica 字体。目前我正在与 Assets 分开创建字体。所以我说了这三个 HelveticaNeue = Typeface.createFromAsset(app
我想将 TextView 上的第一个字符设置为 TypeFace,将第二个字符设置为不同的 Type face,依此类推。 我读了这个例子: Spannable str = (Spannable) t
我正在尝试使用我在互联网上找到的字体,但问题是我得到了一个带有“无法制作原生字体”的 FC。 这是我的 ListVIew 的 getView 中的代码: holder.tv_SuraN
我有一个应用程序可以更改某些元素的字体。它适用于大多数人,但可能有 0.5% 的人在尝试更改字体时会出现异常。堆栈跟踪的重要部分是: Caused by: java.lang.RuntimeExcep
我是一名优秀的程序员,十分优秀!