尝试运行设置活动时,Android应用程序崩溃

时间:2018-12-21 04:39:51

标签: java android xml android-studio

我正在尝试创建一个设置活动,该用户位于个人资料屏幕上,并且能够单击设置按钮来访问设置活动。但是,尝试运行设置活动时,应用程序崩溃。

我已经查看了运行时错误,并且我相信pref_main.xml是引起问题的文件。

<?xml version="1.0" encoding="utf-8"?>
<Debata xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="@string/pref_title_account">
    <EditTextPreference
        android:defaultValue="@string/default_full_name"
        android:key="@string/key_full_name"
        android:summary="@string/default_full_name"
        android:title="@string/title_name" />
    <EditTextPreference
        android:defaultValue="@string/default_username"
        android:key="@string/key_username"
        android:summary="@string/default_username"
        android:title="@string/title_username" />

    <EditTextPreference
        android:defaultValue="@string/default_birthday"
        android:key="@string/key_birthday"
        android:summary="@string/default_birthday"
        android:title="@string/title_birthday" />

    <EditTextPreference
        android:defaultValue="@string/default_email"
        android:key="@string/key_email"
        android:summary="@string/default_email"
        android:title="@string/title_email" />
</PreferenceCategory>

<PreferenceCategory android:title="@string/pref_title_notifications">
    <SwitchPreference
        android:defaultValue="true"
        android:key="@string/enable_notifications"
        android:title="@string/title_enable_notifications" />

    <RingtonePreference
        android:defaultValue="content://settings/system/notification_sound"
        android:dependency="enable_notifications"
        android:key="@string/key_ringtone"
        android:ringtoneType="notification"
        android:summary="@string/default_ringtone"
        android:title="@string/title_ringtone" />

    <SwitchPreference
        android:defaultValue="true"
        android:key="@string/key_vibrate"
        android:title="@string/title_vibrate" />
</PreferenceCategory>

<PreferenceCategory android:title="@string/pref_title_more_info">
    <Preference
        android:summary="@string/app_version"
        android:title="@string/title_version" />

    <Preference android:title="@string/title_privacy_policy">
        <intent
            android:action="android.intent.action.VIEW"
            android:data="@string/pdf_privacy_policy" />
    </Preference>

    <Preference android:title="@string/title_terms_conditions">
        <intent
            android:action="android.intent.action.VIEW"
            android:data="@string/pdf_terms_conditions" />
    </Preference>
</PreferenceCategory>

public static class MainPreferenceFragment extends PreferenceFragment {
    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.pref_main);

        // EditText Listeners
        bindPreferenceSummaryToValue(findPreference(getString(R.string.key_full_name)));
        bindPreferenceSummaryToValue(findPreference(getString(R.string.key_username)));
        bindPreferenceSummaryToValue(findPreference(getString(R.string.key_birthday)));
        bindPreferenceSummaryToValue(findPreference(getString(R.string.key_email)));

        // notification preference change listener
        bindPreferenceSummaryToValue(findPreference(getString(R.string.key_ringtone)));
    }
}

这是我查看运行时错误时得到的结果:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: app.debata.com.debata, PID: 8085
    java.lang.RuntimeException: Unable to start activity ComponentInfo{app.debata.com.debata/app.debata.com.debata.SettingsActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class Debata

And in the Runtime error message I had a line that said this:
 app.debata.com.debata.SettingsActivity$MainPreferenceFragment.onCreate(SettingsActivity.java:37)

如果您参考上面的代码并查看MainPreferenceFragement类中的onCreate方法,则该代码中就存在运行时错误。该方法是SettingsActivity.java文件的一部分。

有人可以告诉我为什么尝试运行设置活动时我的android应用程序崩溃吗?

编辑:完整日志文件

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: app.debata.com.debata, PID: 8085
    java.lang.RuntimeException: Unable to start activity ComponentInfo{app.debata.com.debata/app.debata.com.debata.SettingsActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class Debata
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2955)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030)
        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:6938)
        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: android.view.InflateException: Binary XML file line #2: Error inflating class Debata
        at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:443)
        at android.preference.GenericInflater.inflate(GenericInflater.java:318)
        at android.preference.GenericInflater.inflate(GenericInflater.java:264)
        at android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:324)
        at android.preference.PreferenceFragment.addPreferencesFromResource(PreferenceFragment.java:326)
        at app.debata.com.debata.SettingsActivity$MainPreferenceFragment.onCreate(SettingsActivity.java:37)
        at android.app.Fragment.performCreate(Fragment.java:2593)
        at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1234)
        at android.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2421)
        at android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2200)
        at android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2154)
        at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2055)
        at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3050)
        at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2997)
        at android.app.FragmentController.dispatchActivityCreated(FragmentController.java:179)
        at android.app.Activity.performCreateCommon(Activity.java:7177)
        at android.app.Activity.performCreate(Activity.java:7185)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2908)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030) 
        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:6938) 
        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) 
E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.preference.Debata" on path: DexPathList[[zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/base.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_dependencies_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_resources_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_0_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_1_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_2_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_3_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_4_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_5_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_6_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_7_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_8_apk.apk", zip file "/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/lib/arm64, /system/lib64, /system/vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.preference.GenericInflater.createItem(GenericInflater.java:376)
        at android.preference.GenericInflater.onCreateItem(GenericInflater.java:419)
        at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:430)
            ... 27 more
        Suppressed: java.io.IOException: No original dex files found for dex location (arm64) /data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_resources_apk.apk
        at dalvik.system.DexFile.openDexFileNative(Native Method)
        at dalvik.system.DexFile.openDexFile(DexFile.java:353)
        at dalvik.system.DexFile.<init>(DexFile.java:100)
        at dalvik.system.DexFile.<init>(DexFile.java:74)
        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374)
        at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337)
        at dalvik.system.DexPathList.<init>(DexPathList.java:157)
        at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
        at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
        at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:36)
        at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:678)
        at android.app.LoadedApk.getClassLoader(LoadedApk.java:711)
        at android.app.LoadedApk.getResources(LoadedApk.java:944)
        at android.app.ContextImpl.createAppContext(ContextImpl.java:2303)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5937)
        at android.app.ActivityThread.-wrap1(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
                ... 6 more
        Suppressed: java.io.IOException: No original dex files found for dex location (arm64) /data/app/app.debata.com.debata-VQM2DR9s3CjomJtnF5Qdyw==/split_lib_slice_0_apk.apk
        at dalvik.system.DexFile.openDexFileNative(Native Method)
        at dalvik.system.DexFile.openDexFile(DexFile.java:353)
        at dalvik.system.DexFile.<init>(DexFile.java:100)
        at dalvik.system.DexFile.<init>(DexFile.java:74)
        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374)
        at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337)
        at dalvik.system.DexPathList.<init>(DexPathList.java:157)
E/AndroidRuntime:     at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
        at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
        at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:36)
        at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:678)
        at android.app.LoadedApk.getClassLoader(LoadedApk.java:711)
        at android.app.LoadedApk.getResources(LoadedApk.java:944)
        at android.app.ContextImpl.createAppContext(ContextImpl.java:2303)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5937)
        at android.app.ActivityThread.-wrap1(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1764)
                ... 6 more

0 个答案:

没有答案
相关问题