2013-08-31 3 views
0

Android 응용 프로그램에서 내 ActionBar 글꼴을 변경하려고합니다.새 TypefaceSpan 객체를 만들 때 ExceptionInInitializerError가 발생했습니다.

4.3 장치에서 코드를 실행하는 동안 모든 것이 잘 작동하지만 2.3.3 장치에서 실행하려고 할 때 앱이 다운됩니다.

 SpannableString s = new SpannableString("MyActivity"); 
    s.setSpan(new TypefaceSpan(this, "myFont"), 0, s.length(), 
      Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

    // Update the action bar title with the TypefaceSpan instance 
    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setTitle(s); 

내 앱이 새로운 TypefaceSpan 라인 덕분에 충돌 :

내가 글꼴을 변경하기 위해 사용하고 기능입니다.

08-31 19:00:21.359: E/AndroidRuntime(3874): FATAL EXCEPTION: main 
08-31 19:00:21.359: E/AndroidRuntime(3874): java.lang.ExceptionInInitializerError 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at com.blabla.myapp.MainActivity.changeActionBarFont(MainActivity.java:41) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at com.blabla.myapp.MainActivity.setupGUIandListeners(MainActivity.java:27) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at com.blabla.myapp.MainActivity.onCreate(MainActivity.java:23) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at android.app.ActivityThread.access$1500(ActivityThread.java:121) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at android.os.Looper.loop(Looper.java:130) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at android.app.ActivityThread.main(ActivityThread.java:3768) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at dalvik.system.NativeStart.main(Native Method) 
08-31 19:00:21.359: E/AndroidRuntime(3874): Caused by: java.lang.NoClassDefFoundError: android.util.LruCache 
08-31 19:00:21.359: E/AndroidRuntime(3874):  at com.blabla.myapp.TypefaceSpan.<clinit>(TypefaceSpan.java:34) 
08-31 19:00:21.359: E/AndroidRuntime(3874):  ... 16 more 
08-31 19:00:21.369: E/(186): Dumpstate > /data/log/dumpstate_app_error 

내 onCreate 기능에서 글꼴을 설정하고 있습니다.

도움이나 아이디어가 있으십니까? 사전

답변

0

에서

덕분에 당신은 사용자 정의 TypefaceSpan 클래스 (com.blabla.myapp.TypefaceSpan)를 정의하는 것 같다. 여기에 android.util.LruCache을 말합니다. 이 클래스는 API 레벨 12에 추가되었습니다. 오래된 기기를 지원하려면 Android 지원 패키지에서 android.support.v4.util.LruCache을 사용하십시오.

관련 문제