【已解决】 Preference启动Activity报错
setting_status.xml
<PreferenceScreen
……
<Preference
android:key="xx"
.....
<intent
android:action="com.intent.action.MAIN"
android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.deviceinfo.Status">
</Preference>
</PreferenceScreen>
AndroidManifest.xml
.....
<activity
android:name="com.android.settings.deviceinfo.Status"
android:label="@string/status_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
.....
com/android/settings/deviceinfo/Status.java
public class Status extends PreferenceActivity {
......
}
报错信息:
12-16 11:51:27.688 3412 3412 E AndroidRuntime: Process: com.android.settings, PID: 3412
12-16 11:51:27.688 3412 3412 E AndroidRuntime: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.settings/com.android.settings.deviceinfo.Status}; have you declared this activity in your AndroidManifest.xml?
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2065)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.app.Instrumentation.execStartActivity(Instrumentation.java:1727)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:5320)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:527)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.app.Activity.startActivityForResult(Activity.java:5278)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:513)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:5664)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.app.Activity.startActivity(Activity.java:5617)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at androidx.preference.Preference.performClick(Preference.java:1201)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at androidx.preference.Preference.performClick(Preference.java:1168)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at androidx.preference.Preference$1.onClick(Preference.java:181)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.view.View.performClick(View.java:7455)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.view.View.performClickInternal(View.java:7428)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.view.View.access$3600(View.java:813)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.view.View$PerformClick.run(View.java:28495)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:938)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.os.Looper.loop(Looper.java:223)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7700)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
12-16 11:51:27.688 3412 3412 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:997)
昨天跟断点大哥讨论了好久都没解决,今天早上又试了几个方法还是不行。
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.settings/com.android.settings.deviceinfo.Status}; have you declared this activity in your AndroidManifest,这个问题这么简单。
就是你这个Activity不存在呀,你有没有在AndroidManifest.xml文件里注册呀。
你这个Activity在不在呢?有没有写对。