1

My app is crashing every time I try to open settings activity. Without RingtonePreference in the XML file it's all work fine. Stacktrace:

07-25 05:30:39.244 3406-3406/com.ovchinnikovm.android.vktop E/AndroidRuntime: FATAL EXCEPTION: main Process: com.ovchinnikovm.android.vktop, PID: 3406 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ovchinnikovm.android.vktop/com.ovchinnikovm.android.vktop.settings.SettingsActivity}: android.view.InflateException: Binary XML file line #11: Error inflating class (not found)RingtonePreference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2560) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2626) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1475) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5740) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:766) Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class (not found)RingtonePreference at android.support.v7.preference.PreferenceInflater.createItemFromTag(PreferenceInflater.java:297) at android.support.v7.preference.PreferenceInflater.rInflate(PreferenceInflater.java:354) at android.support.v7.preference.PreferenceInflater.rInflate(PreferenceInflater.java:356) at android.support.v7.preference.PreferenceInflater.inflate(PreferenceInflater.java:162) at android.support.v7.preference.PreferenceInflater.inflate(PreferenceInflater.java:112) at android.support.v7.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:137) at android.support.v7.preference.PreferenceFragmentCompat.setPreferencesFromResource(PreferenceFragmentCompat.java:448) at com.ovchinnikovm.android.vktop.settings.SettingsFragment.onCreatePreferences(SettingsFragment.java:21) at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:224) at android.support.v4.app.Fragment.performCreate(Fragment.java:2331) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1386) at android.support.v4.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1188) at android.support.v4.app.FragmentTransition.calculateFragments(FragmentTransition.java:1071) at android.support.v4.app.FragmentTransition.startTransitions(FragmentTransition.java:115) at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2380) at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245) at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3248) at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3200) at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597) at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1245) at android.app.Activity.performStart(Activity.java:6581) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2523) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2626) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1475) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5740) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:766) Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.preference.RingtonePreference" on path: DexPathList[[zip file "/data/app/com.ovchinnikovm.android.vktop-2/base.apk", zip file "/data/app/com.ovchinnikovm.android.vktop-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.ovchinnikovm.android.vktop-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.ovchinnikovm.android.vktop-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.ovchinnikovm.android.vktop-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.ovchinnikovm.android.vktop-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.ovchin

Xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:title="@string/notifications_title"
        android:key="notification_title">
        <android.support.v7.preference.SwitchPreferenceCompat
            android:defaultValue="true"
            android:key="enable_notifications"
            android:summary="@string/enable_notification_summary"
            android:title="@string/notifications_title" />
        <RingtonePreference
            android:key="pref_tone"
            android:title="@string/pref_tone"
            android:showDefault="true"
            android:ringtoneType="notification"
            android:showSilent="true"/>
    </PreferenceCategory>
</PreferenceScreen>

Java class:

    public class SettingsActivity extends AppCompatActivity {

    public static final String KEY_PREF_NOTIFICATION_SWITCH = "enable_notifications";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportFragmentManager().beginTransaction()
                .replace(android.R.id.content, new SettingsFragment())
                .commit();
    }
}

Fragment:

public class SettingsFragment extends PreferenceFragmentCompat {

    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        setPreferencesFromResource(R.xml.preferences, rootKey);
    }

}

Part of gradle where I add support libraries:

implementation "com.android.support:appcompat-v7:27.1.1"
implementation 'com.android.support:support-v13:27.1.1'
implementation "com.android.support.constraint:constraint-layout:1.1.2"
implementation "com.android.support:recyclerview-v7:27.1.1"
implementation "com.android.support:cardview-v7:27.1.1"
implementation "com.android.support:design:27.1.1"
implementation 'com.android.support:preference-v7:27.1.1'

Part of the strings.xml file that related to SettingsActivity:

<!-- Settings Screen -->
<string name="settings_label">Settings</string>
<string name="notifications_title">Notifications</string>
<string name="enable_notification_summary">Notifications report the end of the sorting when app is minimized</string>
<string name="pref_tone">Notification ringtone</string>

0 Answers0