Ich versuche, eine benutzerdefinierte Schriftart für ein TextView auf Android zu verwenden, nach der Anleitung here und here. Unter Verwendung der gleichen Schriftart, denselben Code, alles gleich, ich dies in adb logcat:"RuntimeException: native Schriftart kann nicht erstellt werden" beim Laden von Schriftart
W/dalvikvm( 317): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
E/AndroidRuntime( 317): FATAL EXCEPTION: main
E/AndroidRuntime( 317): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.evilx.quacklock/org.evilx.quacklock.MainActivity}: java.lang.RuntimeException: native typeface cannot be made
E/AndroidRuntime( 317): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
E/AndroidRuntime( 317): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime( 317): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
E/AndroidRuntime( 317): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
E/AndroidRuntime( 317): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 317): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 317): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime( 317): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 317): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 317): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 317): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 317): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 317): Caused by: java.lang.RuntimeException: native typeface cannot be made
E/AndroidRuntime( 317): at android.graphics.Typeface.<init>(Typeface.java:147)
E/AndroidRuntime( 317): at android.graphics.Typeface.createFromAsset(Typeface.java:121)
E/AndroidRuntime( 317): at org.evilx.quacklock.MainActivity.onCreate(MainActivity.java:24)
E/AndroidRuntime( 317): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime( 317): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
E/AndroidRuntime( 317): ... 11 more
W/ActivityManager( 59): Force finishing activity org.evilx.quacklock/.MainActivity
W/ActivityManager( 59): Activity pause timeout for HistoryRecord{43e80368 org.evilx.quacklock/.MainActivity}
D/dalvikvm( 247): GC_EXPLICIT freed 711 objects/53160 bytes in 20922ms
Hmm ... okay. Ich verwende die Schriftart Molot.otf, die erfolgreich in einem der Blogs verwendet wurde. Ich verwende auch predator.ttf, eine andere benutzerdefinierte Schriftart aber im Truetype-Format
Relevante Code:
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Molot.otf");
TextView tv = (TextView) findViewById(R.id.CustomFontText);
tv.setTypeface(tf);
}
}
und
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/CustomFontText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:text="Here is some text."> </TextView> </LinearLayout>
Was verursacht werden würde? Es hat für die Leute in den Blogs funktioniert, also warum nicht ich? Hat sich etwas an der API geändert, das mich davon abhält?
Ich habe diesen Fehler und fragte mich, was es bedeutete, dann habe ich herausgefunden dass es passiert ist, weil ** die zu ladende Datei nicht gefunden werden konnte **. Obwohl dies vielleicht nichts mit diesem Post zu tun hat, den ich noch nicht einmal gelesen habe, poste ich ihn hier, weil es das einzige Ergebnis ist, das ich bei Google bekomme, wenn ich nach diesem Fehler suche. –
Ich denke, das war das Problem in meiner Situation, aber ich bin mir nicht sicher. Ich endete damit, viel zu basteln, und irgendwie funktionierte es. – TheLQ
Offenbar mag Android auch nicht die Situation, in der der Font-Dateiname nicht mit dem (eingebetteten) Namen der Schriftart übereinstimmt. Ich habe genau die gleiche Ausnahme nach dem Umbenennen der ttf-Datei. – mvds