【发布时间】:2015-04-02 19:57:17
【问题描述】:
在BaseGameActivity.java 我有很容易创建字体的方法。但不幸的是,在创建字体时,该应用程序以某种方式停止了。代码不包含语法错误。
BaseGameActivity.java
public class BaseGameActivity extends Activity {
private Map<String,Typeface> typefaces = new HashMap<String,Typeface>();
protected void addTypeface(String name) {
Typeface typeface = Typeface.createFromAsset(getAssets(), name+".tff");
typefaces.put(name, typeface);
}
protected void setTypeface(TextView v, String typefaceName) {
Typeface t = typefaces.get(typefaceName);
if(t != null) {
v.setTypeface(t);
}
}
}
MainAcitivity.java
public class MainActivity extends BaseGameActivity {
private static final String FONTNAME = "airmole";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addTypeface(FONTNAME);
setTypeface((TextView) findViewById(R.id.title), FONTNAME);
}
}
文件airmole.tff 位于assets 文件夹中。
日志猫
Caused by: java.lang.RuntimeException: native typeface cannot be made
at android.graphics.Typeface.<init>(Typeface.java:319)
at android.graphics.Typeface.createFromAsset(Typeface.java:293)
at de.ucarweb.tools.BaseGameActivity.addTypeface(BaseGameActivity.java:23)
at de.ucarweb.silverball.MainActivity.onCreate(MainActivity.java:28)
at android.app.Activity.performCreate(Activity.java:5372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
at android.app.ActivityThread.access$700(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
【问题讨论】:
-
logcat崩溃时会说什么? -
在链接中,有一些建议,但没有一个有效。到底是哪里出了问题。
-
这只是两个链接,它们立即出现了相同的错误。还有几个。你确定
getAssets()有效吗?尝试将您的Typeface代码移动到主要活动,而不是进行方法调用,只是看看它的行为是否有任何不同。
标签: java android typeface android-fonts