我已将一些AOSP code导入到我的应用程序中,并且在执行processDebugAndroidTestManifest
任务期间,它会抛出java.lang.RuntimeException
:
错误:任务':contacts_common:processDebugAndroidTestManifest'执行失败。 java.lang.RuntimeException:清单合并失败:属性path-permission @ pathPrefix value =(/ search_suggest_query)来自[gcs:contacts_provider:unspecified] AndroidManifest.xml:31:17-59 也出现在[gcs:contacts_provider:unspecified] AndroidManifest.xml:34:17-62 value =(/ search_suggest_shortcut)。 建议:添加'工具: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。