我剛剛在專業版和免費版中拆分了我的應用程序。因此,我讓我的應用程序成爲圖書館並創建了兩個新項目。 免費版保持namespace
"com.mxp.time"
和親版本得到namespace
"com.sourcecastle.mytime"
。 所以免費版本與我的圖書館有相同的namespace
。 除了當我從專業版中的首選項活動開始活動時,一切正常。 在那裏,我得到:權限拒絕:啓動意圖
Permission Denial: starting Intent { act=android.intent.action.VIEW cmp=com.mxp.time/.DataManagementActivity } from ProcessRecord{45461048 30784:com.sourcecastle.mytime/u0a10012} (pid=30784, uid=10012) not exported from uid 10013
我的preferences.xml樣子:
<!-- datamanagement -->
<PreferenceCategory
android:key="datamanagement_category"
android:title="@string/settings_datamanagement_title" >
<Preference
android:summary="@string/settings_datamanagement_pref_message"
android:title="@string/settings_datamanagement_pref_title" >
<intent
android:action="android.intent.action.VIEW"
android:targetClass="com.mxp.time.DataManagementActivity"
android:targetPackage="com.mxp.time" />
</Preference>
</PreferenceCategory>
我的清單:
<activity
android:name="com.mxp.time.DataManagementActivity"
android:exported="true"
android:label="@string/datamanagement_title" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
我已經設置
「機器人:出口=「true」
在我的清單,但我仍然得到一個例外。
另外我有一個普遍的問題:我現在應該在哪裏定義我的活動?在圖書館或真正的應用程序? 我試圖從我的圖書館項目中刪除所有權限和活動,我的應用程序繼續工作。 但因爲我得到了這個問題,我問自己,如果這不是一個安全問題,因爲登記在我的應用我的活動,只讓我重寫,如「出口」設置...
誰能幫助我理解?
UPDATE:
這似乎工作:
<!-- datamanagement -->
<PreferenceCategory
android:key="datamanagement_category"
android:title="@string/settings_datamanagement_title" >
<!-- <Preference -->
<!-- android:summary="@string/settings_datamanagement_pref_message" -->
<!-- android:title="@string/settings_datamanagement_pref_title" > -->
<!-- <intent -->
<!-- android:action="android.intent.action.VIEW" -->
<!-- android:targetClass="com.mxp.time.DataManagementActivity" -->
<!-- android:targetPackage="com.mxp.time" /> -->
<!-- </Preference> -->
<PreferenceScreen
android:summary="@string/settings_datamanagement_pref_message"
android:title="@string/settings_datamanagement_pref_title" >
<intent android:action="com.mxp.time.DataManagementActivity" />
</PreferenceScreen>
</PreferenceCategory>
和:
<activity
android:name="com.mxp.time.DataManagementActivity"
android:exported="true"
android:label="@string/datamanagement_title" >
<intent-filter>
<action android:name="com.mxp.time.DataManagementActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
而我的另一個問題是,這裏ansered: Android Library Manifest vs. App Manifest
你找到一個解決這個問題?我對我的一項活動有同樣的問題,儘管我使用圖書館已有多年... –
是的, 閱讀下面。 – stefan