我已经将一些AOSP 代码导入到我的应用程序中,并且在执行processDebugAndroidTestManifest
任务期间,它会抛出java.lang.RuntimeException
:
错误:任务 ':contacts_common:processDebugAndroidTestManifest' 执行失败。java.lang.RuntimeException:清单合并失败:来自 [gcs:contacts_provider:unspecified] 的属性 path-permission@pathPrefix value=(/search_suggest_query) AndroidManifest.xml:31:17-59 也存在于 [gcs:contacts_provider:unspecified] AndroidManifest.xml:34:17-62 值=(/search_suggest_shortcut)。建议:将 'tools:replace="android:pathPrefix"' 添加到 manifestMerger6750235787399637901.xml 中的元素以覆盖。
这很奇怪,因为我确信前一段时间的明显合并没有引起反对。
我无法添加'tools:replace="android:pathPrefix"'
元素,因为我需要同时使用这两个权限,就像在 AOSP 中一样。
如何pathPrefixes
在提供程序中使用两个不同的?
这是我的provider
:
<provider
android:name="some_name"
android:authorities="some_authorities"
android:exported="false"
android:label="@string/provider_label"
android:multiprocess="false" >
<path-permission
android:pathPrefix="/search_suggest_query"
android:readPermission="android.permission.GLOBAL_SEARCH" />
<path-permission
android:pathPrefix="/search_suggest_shortcut"
android:readPermission="android.permission.GLOBAL_SEARCH" />
<path-permission
android:pathPattern="/contacts/.*/photo"
android:readPermission="android.permission.GLOBAL_SEARCH" />
<grant-uri-permission android:pathPattern=".*" />
</provider>
使用./gradlew assembleDebug
效果很好。仅在 Android Studio 中引发异常。
我正在使用 Android Studio 2.1.1,构建 gradle 工具 2.0.0 和 2.1.0。