2012-10-12 15 views
6

ho messo un aggiornamento su Google Play e vedere questo errore: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 

non capisco il motivo per cui questo errore appare causa è un lavoro perfettamente sui miei dispositivi

Qualcuno ha un'idea?

Ecco una parte della mia Manifest.xml

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

Grazie

risposta

10

Non utilizzare android:theme="@style/Theme.Sherlock".

Utilizzare setTheme(R.style.Theme_Sherlock); all'interno di OnCreate.

E.g.

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

    // What you want to do here 
} 
+1

Normalmente è la stessa come faccio io non è vero? – jaumard

+0

@jaumard Sì, puoi farlo anche tu, ma non è necessario. Hai bisogno di mettere il setTheme() in OnCreate, o andrà in crash. – Muz

+0

Grazie, ma l'errore è stato risolto non so come ... forse un errore di compilazione con eclissi. Non voglio usare setTheme su tutte le mie attività se posso mettere una sola volta nel mio manifest. – jaumard

2

Si può solo rendere il vostro stile di ereditare da Theme.Sherlock

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

allora in uso manifestare il vostro tema

android:theme="@style/MyAppTheme" 

Non è necessario usare setTheme in ogni pagina come Muz detto questo sembra molto lavoro quando ci sono soluzioni molto migliori, segnerebbe la risposta sopra ma non posso !!

2

Sono d'accordo con matt_lethargic. Nel mio file di stile è stato:

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

La mia applicazione fermato schiantarsi dopo ho cambiato in:

<style name="AppBaseTheme" parent="Theme.Sherlock"> 
Problemi correlati