-4
03-11 15:03:32.743: E/AndroidRuntime(1556): FATAL EXCEPTION: main
03-11 15:03:32.743: E/AndroidRuntime(1556): Process: com.example.takipci, PID: 1556
03-11 15:03:32.743: E/AndroidRuntime(1556): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.takipci/com.example.takipci.AyarlarActivity}: java.lang.RuntimeException: Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid! com.example.takipci.AyarlarActivity has not checked if fragment com.example.takipci.fragment.GizlilikPreferencesFragment is valid.
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.os.Handler.dispatchMessage(Handler.java:102)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.os.Looper.loop(Looper.java:136)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.app.ActivityThread.main(ActivityThread.java:5017)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at java.lang.reflect.Method.invokeNative(Native Method)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at java.lang.reflect.Method.invoke(Method.java:515)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at dalvik.system.NativeStart.main(Native Method)
03-11 15:03:32.743: E/AndroidRuntime(1556): Caused by: java.lang.RuntimeException: Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid! com.example.takipci.AyarlarActivity has not checked if fragment com.example.takipci.fragment.GizlilikPreferencesFragment is valid.
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.preference.PreferenceActivity.isValidFragment(PreferenceActivity.java:898)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.preference.PreferenceActivity.switchToHeaderInner(PreferenceActivity.java:1179)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.preference.PreferenceActivity.switchToHeader(PreferenceActivity.java:1199)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.preference.PreferenceActivity.onCreate(PreferenceActivity.java:545)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at com.example.takipci.AyarlarActivity.onCreate(AyarlarActivity.java:20)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.app.Activity.performCreate(Activity.java:5231)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-11 15:03:32.743: E/AndroidRuntime(1556):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
03-11 15:03:32.743: E/AndroidRuntime(1556):     ... 11 more
Alexis C.
  • 91,686
  • 21
  • 171
  • 177
Burcak
  • 1
  • 1
    Including the exception trace is good. But we're not psychic. I suggest you include some more detail as to how you got to this point. What is your program doing? Could we reproduce the scenario? Can you make a smaller program that demonstrates the problem? – Travis Griggs Mar 11 '14 at 19:47
  • i installed the new device lower than 4.4 and my program function. Thank you for your interest. – Burcak Mar 11 '14 at 20:31

2 Answers2

1

The exception states:

Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid! com.example.takipci.AyarlarActivity has not checked if fragment com.example.takipci.fragment.GizlilikPreferencesFragment is valid.

In your AyarlarActivity you need to add something like the following:

@Override
protected boolean isValidFragment(String fragmentName) {
    return GizlilikPreferencesFragment.class.getName().equals(fragmentName)
           || super.isValidFragment(fragmentName);
}
Bryan Herbst
  • 66,602
  • 10
  • 133
  • 120
  • code is an excerpt. His program function but my program didn't function. This piece of code doesn't write in his program. What else could be cause of the error ? – Burcak Mar 11 '14 at 19:44
  • Are you targeting the same SDK version? This was a change in API level 19 (4.4, KitKat) – Bryan Herbst Mar 11 '14 at 19:46
  • yes my device of version 4.4. AndroidManifest.xml page in this wise :android:minSdkVersion="15" android:targetSdkVersion="19" – Burcak Mar 11 '14 at 19:54
  • But does the original code also target 4.4? – Bryan Herbst Mar 11 '14 at 19:55
0

Try to change your API version to 18 or lower, it seems to be a KitKat security restriction

<uses-sdk android:targetSdkVersion="18" />
Alex Lord Mordor
  • 2,890
  • 7
  • 27
  • 47