gpt4 book ai didi

java.lang.IllegalStateException : Fragment

转载 作者:行者123 更新时间:2023-12-02 06:04:57 25 4
gpt4 key购买 nike

当我使用 targetSdkVersion 26 时,我的代码运行良好,现在我已将 targetSdkVersion 更改为 28,所以现在我在 Android 版本 8.0+ 的某些设备上遇到这些崩溃,我现在做什么......???

我已将 UrduSimplePreferenceFragment 从 protected 更改为公共(public),但仍然遇到相同的崩溃

e8.java

public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager()
.beginTransaction()
.replace(android.R.id.content,
new UrduSimplePreferenceFragment()).commit();

mSharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
editor = mSharedPreferences.edit();
}
@SuppressLint("validFragment")
public class UrduSimplePreferenceFragment extends PreferenceFragment {
@SuppressLint("NewApi")
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.z4);
Log.e("kk", "onCreate");
InterstitialAdmob();


getActionBar().setIcon(R.drawable.icon);
Preference pref = findPreference("changetheme");
pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {

@Override
public boolean onPreferenceClick(Preference preference) {
themesDialog();
return true;
}
});
/*if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}*/

}

}

日志猫

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.multi.keyboard.khmer.keyboard.khmerlanguage/com.multi.keyboard.khmer.keyboard.khmerlanguage.e8}: java.lang.IllegalStateException: Fragment com.multi.keyboard.khmer.keyboard.khmerlanguage.e8.UrduSimplePreferenceFragment must be a public static class to be  properly recreated from instance state.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6942)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.IllegalStateException: Fragment com.multi.keyboard.khmer.keyboard.khmerlanguage.e8.UrduSimplePreferenceFragment must be a public static class to be properly recreated from instance state.
at android.app.BackStackRecord.doAddOp(BackStackRecord.java:429)
at android.app.BackStackRecord.replace(BackStackRecord.java:470)
at android.app.BackStackRecord.replace(BackStackRecord.java:462)
at com.multi.keyboard.khmer.keyboard.khmerlanguage.e8.onCreate(e8.java:36)
at android.app.Activity.performCreate(Activity.java:7183)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1221)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032) 
at android.app.ActivityThread.-wrap11(Unknown Source:0) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) 
at android.os.Handler.dispatchMessage(Handler.java:105) 
at android.os.Looper.loop(Looper.java:164) 
at android.app.ActivityThread.main(ActivityThread.java:6942) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

最佳答案

UrduSimplePreferenceFragment must be a public static class to be  properly recreated from instance state.

使 UrduSimplePreferenceFragment 成为公共(public)静态类

public static class UrduSimplePreferenceFragment extends PreferenceFragment {
@SuppressLint("NewApi")
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.z4);
Log.e("kk", "onCreate");
InterstitialAdmob();


getActionBar().setIcon(R.drawable.icon);
Preference pref = findPreference("changetheme");
pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {

@Override
public boolean onPreferenceClick(Preference preference) {
themesDialog();
return true;
}
});
/*if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}*/

}

}

关于java.lang.IllegalStateException : Fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55946480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com