2012-10-12 31 views
6

Tôi đã đặt một bản cập nhật trên google play và xem lỗi này:java.lang.RuntimeException Theme.Sherlock

java.lang.RuntimeException: Unable to start activity 

ComponentInfo{com.jim2/com.jim2.SettingWidgetActivity}: java.lang.IllegalStateException: You must use Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar, or a derivative. 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1815) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831) 
at android.app.ActivityThread.access$500(ActivityThread.java:122) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:132) 
at android.app.ActivityThread.main(ActivityThread.java:4123) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:491) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.IllegalStateException: You must use Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar, or a derivative. 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.generateLayout(ActionBarSherlockCompat.java:1007) 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.installDecor(ActionBarSherlockCompat.java:919) 
at com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:853) 
at com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:251) 
at com.jim2.SettingWidgetActivity.onCreate(SettingWidgetActivity.java:37) 
at android.app.Activity.performCreate(Activity.java:4397) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1779) 
... 11 more 

Tôi không hiểu tại sao lỗi này xuất hiện nguyên nhân đó là công việc một cách hoàn hảo trên các thiết bị của tôi

Bất cứ ai cũng có một ý tưởng?

Đây là một phần của manifest.xml tôi

<application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/Theme.Sherlock" > 

Cảm ơn

Trả lời

10

Không sử dụng android:theme="@style/Theme.Sherlock".

Sử dụng setTheme(R.style.Theme_Sherlock); bên trong OnCreate.

Ví dụ:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    setTheme(R.style.Theme_Sherlock); 
    super.onCreate(savedInstanceState); 

    // What you want to do here 
} 
+1

Thông thường nó giống như tôi làm phải không? – jaumard

+0

@jaumard Có, bạn cũng có thể làm điều đó, nhưng không cần thiết. Bạn cần phải đặt setTheme() trong OnCreate, hoặc nó sẽ sụp đổ. – Muz

+0

Cảm ơn nhưng lỗi đã được sửa chữa tôi không biết làm thế nào ... có thể là một lỗi biên dịch với nhật thực. Tôi không muốn sử dụng setTheme trên tất cả các hoạt động của mình nếu tôi chỉ có thể đặt một lần trong tệp kê khai của mình. – jaumard

2

Bạn chỉ có thể thực hiện kế thừa phong cách của bạn từ Theme.Sherlock

<style name="MyAppTheme" parent="Theme.Sherlock"> 

sau đó sử dụng manifest chủ đề của bạn

android:theme="@style/MyAppTheme" 

Bạn không cần phải sử dụng setTheme trên mỗi trang như Muz cho biết điều này có vẻ như rất nhiều công việc khi có nhiều giải pháp tốt hơn, sẽ đánh dấu câu trả lời ở trên nhưng tôi không thể !!

2

Tôi đồng ý với matt_lethargic. Trong tập phong cách của tôi là:

<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 

Ứng dụng của tôi ngừng rơi sau khi tôi thay đổi nó để:

<style name="AppBaseTheme" parent="Theme.Sherlock"> 
Các vấn đề liên quan