1

現在、システムを最新のAndroidスタジオ/グラードツールにアップデートしようとしており、途中でいくつかのエラーが急激に増えています。2つのライブラリが同じアクセス許可を使用したい場合、マニフェストの合併が失敗する

私たちにはpermission.C2D_MESSAGE、すなわちFirebaseとXtremePushを使用する2つのライブラリがあります。問題は、アプリケーションをビルドするとすぐに、エラー "が見つかりませんでした。マージを完了できなかったためマニフェスト合併が失敗しました(これはマニフェスト合併のバグです)。 "両方の定義は、外部ライブラリにあるように、我々は合併設定することができませんXtremePush

<permission 
    android:name=".permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 

<uses-permission android:name=".permission.C2D_MESSAGE" /> 

Firebase

<permission android:name="${applicationId}.permission.C2D_MESSAGE" 
      android:protectionLevel="signature"/> 

<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/> 

:私たちが問題に見ると

は、我々は次の定義を見つけましたマニフェストの詳細を変更するか、変更します。また、両方のライブラリは今日の時点で最新のものなので、それぞれの開発者側には解決策がないようです。マニフェストのパーミッションを設定しても、何も変更されませんでした。

ありがとうございます! Androidマニフェストファイルの追加

+1

"マージルールを設定したり、マニフェストの詳細を変更することはできません" - 独自のマニフェストの要素を定義し、IIRCの 'tools:overrideLibrary'を使用します。 – CommonsWare

+0

現在、両方の属性(permissionとuse-permission)は、のタグと私はタグを持っていません。ただしfacebookライブラリを除きます。ライブラリのパッケージ名を使って別のライブラリを作成し、そこにoverrideLibraryを追加することはできますか? – Essi

+1

マニフェストに ''と ''要素を置き、必要に応じてそれらの要素に 'tools:overrideLibrary'を含めます。そして、最高のことを願ってください。 – CommonsWare

答えて

0

私は最初のライブラリが衝突んどの見つけることによって問題を解決しました。私にとっては、パッケージ名が「ie.imobile.extremepush」のXtremePushと、パッケージ名が「com.google.firebase」のFirebaseでした。

それから私は私の実装が変更に...

<permission 
    android:name="${applicationId}.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" 
    tools:overrideLibrary="com.google.firebase, ie.imobile.extremepush" /> 

<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" 
       tools:overrideLibrary="com.google.firebase, ie.imobile.extremepush"/> 

は私のマニフェストが衝突し、マニフェスト、両方をオーバーライドし、合併問題が生じたであろうと..so。両者はすでに機能面でほぼ同一であったため、これは問題ありませんでした。

1

<uses-sdk tools:overrideLibrary="com.example.firebase, com.example.xtremepush"/> 
+0

これは、 ''または ''要素には影響せず、 ''要素にのみ影響します。 – CommonsWare

+0

あなたが正しいです、私にとって正しい解決策は、最初の質問のコメントです。 – Essi

関連する問題