我在製作PreferenceScreen
和applicationIdSuffix
時遇到一些問題。將PreferenceScreen與applicationIdSuffix一起使用
假設我的應用程序包/ applicationId
是在搖籃和在AndroidManifest.xml com.myapp
,和applicationIdSuffix
被定義爲:
buildTypes {
debug {
applicationIdSuffix '.dev'
}
}
如果我定義了一個PreferenceScreen
如以下
<PreferenceScreen
android:key="key_about" android:summary="something" android:title="About">
<intent
android:targetClass="com.myapp.activities.AboutActivity"
android:targetPackage="com.myapp" />
</PreferenceScreen>
啓動時該應用程序的調試版本我得到一個異常
java.lang.SecurityException: Permission Denial: starting Intent { (...) } from ProcessRecord{(...)} (pid=13658, uid=10105) not exported from uid 10067
這是有道理的,因爲我試圖從不同的應用程序啓動一項活動。問題是,我無法找到一種方法來Android啓動正確的活動。
如果我改變targetClass
爲「.activities.AboutActivity」它仍然無法找到活動
ActivityNotFoundException: Unable to find explicit activity class {com.myapp.dev/.activities.AboutActivity}
我甚至試圖界定各自的版本與正確的包值:
android:targetClass="@string/classname"
android:targetPackage="@string/packagename"
但它無法找到合適的活動:
ActivityNotFoundException: Unable to find explicit activity class
{com.myapp.dev/com.myapp.dev.activities.AboutActivity};
have you declared this activity in your AndroidManifest.xml?
那麼我該如何做這項工作?
根據這裏的例外情況,我認爲它說你應該在清單中定義你的AboutActivity。 – mike20132013