here 및 here 가이드에 따라 Android의 TextView에 사용자 지정 글꼴을 사용하려고합니다. 동일한 글꼴, 동일한 코드, 모든 것을 사용하면 logcat에 다음과 같이 표시됩니다.글꼴을로드 할 때 "RuntimeException : 기본 서체를 만들 수 없습니다"
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
흠 ... 좋습니다. 나는 블로그 중 하나에서 성공적으로 사용 된 글꼴 Molot.otf를 사용하고 있습니다. 또한 predator.ttf, 다른 사용자 정의 글꼴하지만, 트루 타입 형식을 사용하고
관련 코드 :이 원인이 될 것입니다 무엇
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);
}
}
및
<?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>
? 그것은 블로그에있는 사람들을 위해 일 했으니 까, 왜 나야? API에서 중요한 변경 사항이 발생했기 때문에이를 방지 할 수 없었습니까?
이 오류가 발생하여 그 의미가 궁금했을 때 알아 냈습니다. **로드 할 파일을 찾을 수 없기 때문에 발생했습니다 **. 비록 내가 읽지도 않은이 게시물과 관련이 없을 수도 있지만,이 오류를 검색하는 Google의 유일한 결과이기 때문에 여기에 게시하므로 어쨌든 주목할만한 가치가 있다고 생각합니다. –
나는 그것이 내 상황의 문제라고 생각하지만 확실하지 않다. 나는 땜질을 많이하면서 끝내 버렸고 어떻게 든 작동하도록했다. – TheLQ
분명히 안드로이드는 폰트 파일 이름이 폰트의 (임베디드) 이름과 일치하지 않는 상황을 좋아하지 않는다. 단순히 ttf 파일의 이름을 변경 한 후에도 똑같은 예외가 발생했습니다. – mvds