<Preference
android:title="退出登录"
android:summary="注销当前账号">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.dragonlayout.iHealth"
android:targetClass="com.dragonlayout.iHealth.ui.setting.LogoutDialogActivity"/>
</Preference>
Preference是按照上面的写的,下面的是AndroidManifest.xml的代码:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dragonlayout.iHealth">
<application
android:name=".iHealthApp"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".ui.setting.LogoutDialogActivity"
android:theme="@style/LogoutDialog" />
</application>
</manifest>
运行之后一直报错:
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.dragonlayout.iHealth/com.dragonlayout.iHealth.ui.setting.LogoutDialogActivity}; have you declared this activity in your AndroidManifest.xml?
网上查找了好多方法,但是我在AndroidManifest.xml明明已经注册过了Activity,而且程序的包名写的都对。
因为我之前改过工程的名字,还有包的名字,我觉得可能是这个原因导致的,后来在AndroidManifest.xml的Merged Manifest面板看了一下,发现package节点还是修改之前的工程名,于是去build.gradle(Module.app)下面看了一下,发现果然applicationId还是修改之前的工程名,这下问题就找到了。
修改之后运行成功!
友情提醒,改工程名和包名的时候,先百度一下,看看正确的修改方法是什么,别自己瞎几把改