2016-04-11 27 views
0

我有一個像aar文件一樣分發的android庫。對於它的集成用戶應該聲明一些清單和一些活動的權限。從庫中合併權限和活動聲明AndroidManifest

是否有可能在庫的AndroidManifest中聲明它,以便用戶不需要擔心清單?

UPD。我想清楚是什麼問題。我採取文件形式本地maven回購,但除了aarjar文件與相同的鬃毛,它採用它默認情況下。

解決方案是將其從compile 'com.packagename:mylib:0.0.1'更改爲compile 'com.packagename:mylib:[email protected]'中的gradle依賴關係。

+0

對不起,這是不可能的。 –

+1

*是否可以在AndroidManifest庫中聲明它,以便用戶不需要擔心清單?*您嘗試過嗎? [清單合併](http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger)正在以這種方式工作(至少與預備隊) – Selvin

+0

@Selvin是的,我沒有。它不包括從庫到結果清單的數據。看起來它只適用於buildTypes和Flavors。 – anber

回答

2

是可以在庫中聲明它的AndroidManifest,因此用戶不需要擔心清單?

您可以將這些東西包含在庫中的AndroidManifest.xml文件中。通過the manifest merger process,這些項目將成爲摺疊到整個應用程序清單中的候選項目。

然而,庫的用戶可能還是要「憂」吧:

  • 如果用<intent-filter>添加<activity>的啓動器圖標,您的圖書館的一些用戶可能不喜歡這一點,必須採取措施來阻止該圖標

  • 如果添加<uses-permission>元素是可怕的,你的庫可能不喜歡這樣的一些用戶,並必須採取措施阻止這些權限

它不會從庫中包括數據導致艙單

是的,確實如此,至少爲Android工作室/搖籃構建實際使用AAR文件。我不知道什麼「 aar文件」的意思(強調加)。

例如,在this project,我有幾個a manifest in my cam2 library<uses-permission><uses-feature>,和<activity>元素。在a demo app's manifest中,我複製了其中一個<uses-permission>元素(因爲我忘了將它從演示中刪除),並且我重寫了其中一個<activity>元素(使其在單獨的過程中運行)。其他一切都在未經修改的情況下合併。

+0

是的,這是我的錯 - 我從maven中獲取它,並且不會在依賴項中添加「@ aar」 – anber