无法使用我的preferences.xml文件

时间:2018-01-25 22:02:37

标签: android android-activity

好的,首先,我知道有很多答案,我已经尝试了很多。我的SettingsActivity菜单有一个偏好,当我点击它时,我希望它打开另一个Activity。它每次都会崩溃。这只是我尝试过的一个例子:

XML

<Preference
            android:title="@string/open_menu_customizer" >
            <intent
                android:action="android.intent.action.VIEW"
                android:targetClass="CustomMenuActivity"
                android:targetPackage="com.triunedev.foodeze" />
        </Preference>

清单

<activity
            android:name=".CustomMenuActivity"
            android:label="@string/custom_menu_activity">
            <intent-filter>
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

这应该不是那么困难,但我是Android的新手。提前谢谢。

添加了信息。我希望这就是你的意思。

E/InputEventReceiver: Exception dispatching input event.
E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
E/MessageQueue-JNI: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.triunedev.foodeze/CustomMenuActivity}; have you declared this activity in your AndroidManifest.xml?
                        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1777)
                        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501)
                        at android.app.Activity.startActivityForResult(Activity.java:3745)
                        at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
                        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:65)
                        at android.app.Activity.startActivityForResult(Activity.java:3706)
                        at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:711)
                        at android.app.Activity.startActivity(Activity.java:4016)
                        at android.app.Activity.startActivity(Activity.java:3984)
                        at android.preference.Preference.performClick(Preference.java:1001)
                        at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:214)
                        at android.widget.AdapterView.performItemClick(AdapterView.java:305)
                        at android.widget.AbsListView.performItemClick(AbsListView.java:1146)
                        at android.widget.AbsListView$PerformClick.run(AbsListView.java:3053)
                        at android.widget.AbsListView.onTouchUp(AbsListView.java:3872)
                        at android.widget.AbsListView.onTouchEvent(AbsListView.java:3637)
                        at android.view.View.dispatchTouchEvent(View.java:8471)
                        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2399)
                        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2092)
                        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                        at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2369)
                        at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1719)
                        at android.app.Activity.dispatchTouchEvent(Activity.java:2742)
                        at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
                        at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330)
                        at android.view.View.dispatchPointerEvent(View.java:8666)
                        at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4123)
                        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3989)
                        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
                        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
                        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
                        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3680)
                        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571)
                        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3737)
                        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
                        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
                        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
                        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571)
                        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
                        at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.ja
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.triunedev.foodeze, PID: 7264
                  android.content.ActivityNotFoundException: Unable to find explicit activity class {com.triunedev.foodeze/CustomMenuActivity}; have you declared this activity in your AndroidManifest.xml?
                      at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1777)
                      at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501)
                      at android.app.Activity.startActivityForResult(Activity.java:3745)
                      at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
                      at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:65)
                      at android.app.Activity.startActivityForResult(Activity.java:3706)
                      at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:711)
                      at android.app.Activity.startActivity(Activity.java:4016)
                      at android.app.Activity.startActivity(Activity.java:3984)
                      at android.preference.Preference.performClick(Preference.java:1001)
                      at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:214)
                      at android.widget.AdapterView.performItemClick(AdapterView.java:305)
                      at android.widget.AbsListView.performItemClick(AbsListView.java:1146)
                      at android.widget.AbsListView$PerformClick.run(AbsListView.java:3053)
                      at android.widget.AbsListView.onTouchUp(AbsListView.java:3872)
                      at android.widget.AbsListView.onTouchEvent(AbsListView.java:3637)
                      at android.view.View.dispatchTouchEvent(View.java:8471)
                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2399)
                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2092)
                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                      at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2369)
                      at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1719)
                      at android.app.Activity.dispatchTouchEvent(Activity.java:2742)
                      at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
                      at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330)
                      at android.view.View.dispatchPointerEvent(View.java:8666)
                      at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4123)
                      at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3989)
                      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
                      at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
                      at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
                      at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3680)
                      at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571)
                      at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3737)
                      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
                      at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
                      at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
                      at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571)
                      at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)

I/Process: Sending signal. PID: 7264 SIG: 9
Application terminated.

在尝试了几个不同的事情之后,我意识到我也不能用Java来调用这个活动;

public void openSettingsMenu(View view) {

        Intent intent = new Intent(this, CustomMenuActivity.class);
        startActivity(intent);

    }

我得到了上面发布的相同错误。如果有人请求帮助。我会很感激!谢谢!

更新: 问题是:我试图用其余变量启动以下行,

SharedPreferences config = PreferenceManager.getDefaultSharedPreferences(this);

首先声明变量,然后在onCreate方法中初始化它,一切正常

<Preference
            android:title="@string/open_menu_customizer" >
            <intent
                android:action="android.intent.action.VIEW"
                android:targetPackage="com.triunedev.foodeze"
                android:targetClass="com.triunedev.foodeze.CustomMenuActivity"/>
        </Preference> 

并且清单中没有添加intent-filter。

0 个答案:

没有答案