2012-10-12 39 views
6

he puesto una actualización de Google Play y ver este error: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 

No entiendo por qué aparece este error porque es el trabajo perfectamente en mis dispositivos

¿Alguien tiene una idea?

Aquí está una parte de mi Manifest.xml

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

Gracias

Respuesta

10

No utilice android:theme="@style/Theme.Sherlock".

Utilice setTheme(R.style.Theme_Sherlock); dentro de 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 es la misma como a mí ¿no es así? – jaumard

+0

@jaumard Sí, puedes hacerlo también, pero no es necesario. Necesitas poner setTheme() en OnCreate, o se bloqueará. – Muz

+0

Gracias, pero el error fue corregir, no sé cómo ... tal vez un error de compilación con eclipse. No quiero usar setTheme en todas mis actividades si puedo poner solo una vez en mi manifiesto. – jaumard

2

Usted sólo puede hacer que su hereda el estilo de Theme.Sherlock

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

entonces en uso manifiesta su tema

android:theme="@style/MyAppTheme" 

Usted no tiene que utilizar setTheme en cada página como Muz dijo que esto parece mucho trabajo cuando hay soluciones mucho mejores, marcaría la respuesta anterior pero no puedo !!

2

Estoy de acuerdo con matt_lethargic. En mi archivo de estilo era:

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

Mi solicitud parado de estrellarse después de cambiar a:

<style name="AppBaseTheme" parent="Theme.Sherlock"> 
Cuestiones relacionadas