use*_*580 74 fonts android typeface
我有一个应用程序,可以更改某些元素的字体字体.它适用于大多数人,但在尝试更改字体时可能会有0.5%的异常.堆栈跟踪的重要部分是:
Caused by: java.lang.RuntimeException: native typeface cannot be made
at android.graphics.Typeface.<init>(Typeface.java:147)
at android.graphics.Typeface.createFromAsset(Typeface.java:121)
Run Code Online (Sandbox Code Playgroud)
正如我所说,它适用于大多数人,所以我不认为这是字体文件或我的代码的问题.有关如何解决这个问题的任何建议?
编辑:这是我的代码:
Typeface phoneticFont = Typeface.createFromAsset(getAssets(),
"fonts/CharisSILR.ttf");
TextView tv;
tv = ((TextView) findViewById(R.id.searchPronunciationTitle));
tv.setTypeface(phoneticFont);
Run Code Online (Sandbox Code Playgroud)
Hit*_*sit 68
Android操作系统的这个错误可能是您遇到问题的原因:
这个bug报告中的解决方法也在哪里:
我改变了HTH的解决方法,以便该方法不采用字体路径或格式.必须将字体资源的完整路径作为参数提交.我还在try-catch块中包含对createFromAsset()的调用,以便在找不到资产时get()方法将返回null.
public class Typefaces {
private static final String TAG = "Typefaces";
private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>();
public static Typeface get(Context c, String assetPath) {
synchronized (cache) {
if (!cache.containsKey(assetPath)) {
try {
Typeface t = Typeface.createFromAsset(c.getAssets(),
assetPath);
cache.put(assetPath, t);
} catch (Exception e) {
Log.e(TAG, "Could not get typeface '" + assetPath
+ "' because " + e.getMessage());
return null;
}
}
return cache.get(assetPath);
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 52
我按照这里找到的一些解决方案,没有成功.我认为这是一个非常模糊的东西,正如程序员经常做的那样.然后在某处我读到它可能与字体路径有关,得到:
代替:
Typeface phoneticFont = Typeface.createFromAsset(getAssets(),
"blanch_caps.ttf");
Run Code Online (Sandbox Code Playgroud)
我改为:
Typeface phoneticFont = Typeface.createFromAsset(getAssets(),
"fonts/blanch_caps.ttf");
Run Code Online (Sandbox Code Playgroud)
我的文件位于assets/fonts/blanch_caps.ttf中.它不像魅力!
Lum*_*mis 50
当字体在库资源文件夹中时出现此错误.当我将其复制到使用此库的应用程序的资产时,错误消失了.
似乎资产无法导入: Android库资源文件夹不会被复制
以下是其他一些情况:使用自定义字体时出现问题 - "无法制作原生字体"
Mic*_*hal 25
我正在努力解决这个问题.我尝试了所有可能性,没有任何帮助 最后,问题出在其他地方.如果使用Gradle构建项目,请不要忘记在build.gradle文件中添加这些行.这解决了我的问题.
sourceSets {
main {
assets.srcDirs = ['assets']
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
59304 次 |
最近记录: |