2016-11-22 22 views
3

マニフェストで同じタイプのプロバイダを複数使用することはできますか?コードバカメラプラグインはファイルプロバイダを提供するので、私たちのアプリはもうビルドできません。マニフェストには次のものがあります:Cordovaでmanifest.xmlに重複したFileProviderでエラーが発生しました

<provider android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" android:name="android.support.v4.content.FileProvider"> 
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> 
</provider> 

<provider android:authorities="com.our.app.dev.fileprovider" android:exported="false" android:grantUriPermissions="true" android:name="android.support.v4.content.FileProvider"> 
    <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_provider_paths"/> 
</provider> 

最初のエントリは、私たちのプラグインの1つで2番目のものです。ビルド中に

、次のエラーoccurres:

AndroidManifest.xml:44:5-46:16 Error: 
Element provider#android.support.v4.content.FileProvider at AndroidManifest.xml:44:5-46:16 duplicated with element declared at AndroidManifest.xml:41:5-43:16 

ありがとう!

+0

アンドロイドプラットフォームを削除してもう一度追加してください。 –

+0

実行:cordovaきれいなアンドロイド – Eric

+0

@エリック:試した 'cordovaきれいなアンドロイド'。残念ながら、助けなかった。 – Frank

答えて

3

私はこれがコードワの問題ではないと思いますが、アンドロイド構築プロセスの中です。少なくとも私は普通のAndroid StudioとGradleの設定でそれを再現することができます:

同じ名前属性の2つのタグを持つとアンドロイドはうまくいかないようです。私はあなたが別の権限を持っている限り問題がなぜそれがうまくいくのかわかりません。しかし、これはあなたのプラグイン(または使用するプラグインの自分のフォーク)内の解決策にもつながります:

あなたはちょうどあなたがこのように避け、になりまし異なるパッケージ名を持つこの FileProviderを、リンクプラグインの設定の中に、元android.support.v4.content.FileProvider

package com.our.app.dev; 

public class FileProvider extends android.support.v4.content.FileProvider { 
} 

を拡張し、独自のFileProvider.javaを作成しますこの問題。これがうまくいくことを願って、私にとってはそのトリックをするようです。

+0

更新:バグレポートを提出しました:https://code.google.com/p/android/issues/detail?id=231824&thanks=231824&ts=1483974507 –

+0

更新:SocialSharing内でこの問題を解決するためのPRを作成しました-PhoneGap-Pluginを参照回避策として使用できます:https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin/pull/748 –

関連する問題