6

Google Play にアップデートを適用したところ、次のエラーが表示されました。

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

このエラーが表示される理由がわかりません。なぜなら、私のデバイスでは完全に動作するからです

誰にもアイデアがありますか?

これが私のManifest.xmlの一部です

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

ありがとう

4

3 に答える 3

10

使用しないでくださいandroid:theme="@style/Theme.Sherlock"

setTheme(R.style.Theme_Sherlock);内部で使用しOnCreateます。

例えば

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

    // What you want to do here
}
于 2012-10-12T20:17:01.173 に答える
2

私はmatt_lethargicに同意します。私のスタイルファイルには次のものがありました:

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

次のように変更した後、アプリケーションがクラッシュしなくなりました。

<style name="AppBaseTheme" parent="Theme.Sherlock">
于 2013-10-31T08:28:08.267 に答える
2

スタイルを Theme.Sherlock から継承させることができます

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

次に、マニフェストでテーマを使用します

android:theme="@style/MyAppTheme"

Muz が言ったように、すべてのページで setTheme を使用する必要はありません。より良い解決策がある場合、これは多くの作業のように思えます。上記の回答をマークダウンしますが、私はできません!!

于 2013-04-29T12:01:31.863 に答える