2013-08-31 26 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

相關問題