3

Urban-airship cordova プラグイン ( phonegap-ua-push ) と Facebook プラグイン ( phonegap-facebook-plugin ) を使用しようとしていますが、次のエラーに直面しています:

複数の dex ファイルで Landroid/support/annotation/AnimRes を定義

これは、facebook の android-support-v4 と phonegap-ua-push が異なる support-v4 バージョンでコンパイルされているため、衝突が原因のようです。

dependencies {
 compile 'com.android.support:cardview-v7:22.2.0'
 compile 'com.android.support:support-v4:22.2.0'
 compile 'com.google.android.gms:play-services-location:7.5.0'
 compile 'com.google.android.gms:play-services-gcm:7.5.0'
 compile 'com.urbanairship.android:urbanairship-sdk:6.1.3'
}

phonegap-ua-push の依存関係を更新して、それが依存している support-v4 を除外しようとしました。Facebook の依存関係と連携できることを期待しています。これが私がそれをした方法です:

dependencies {
  compile ('com.android.support:cardview-v7:22.2.0') {       
    exclude module: 'support-v4'
  }
  compile ('com.google.android.gms:play-services-location:7.5.0') {       
    exclude module: 'support-v4'
  }
  compile ('com.google.android.gms:play-services-gcm:7.5.0') {       
    exclude module: 'support-v4'
  }
  compile ('com.urbanairship.android:urbanairship-sdk:6.1.3') {       
    exclude module: 'support-v4'
  }
}

しかし、アプリがプッシュ通知を受信すると、アプリがクラッシュします.logcat からの例外は次のとおりです。

E/AndroidRuntime(24095): java.lang.NoSuchMethodError: 仮想メソッドがありません setColor(I)Landroid/support/v4/app/NotificationCompat$Builder; クラス Landroid/support/v4/app/NotificationCompat$Builder 内。またはそのスーパークラス (「android.support.v4.app.NotificationCompat$Builder」の宣言が /data/app/com.****.****-1/base.apk に表示されます)

Facebookとurbanairshipの両方のプラグインを使用できるようになった人はいますか?

編集: ralepinski が言ったように、android-support-v4.jar を platform/android/FacebookLib/libs/ フォルダーから削除しようとしましたが、そうすると、次のエラーのトーンがあります。

FacebookLib/src/com/facebook/AppEventsLogger.java:24: エラー: パッケージ android.support.v4.content が存在しません import android.support.v4.content.LocalBroadcastManager; ...

彼が android-support-v4 を見つけることができないと私に言うのは難しいと思います

次の行として FacebookLib の build.gradle があるため、これは私には意味がありません。

dependencies {
    compile 'com.android.support:support-v4:[20,21)'
    compile 'com.parse.bolts:bolts-android:1.1.2'
}

したがって、android-support-v4 が必要であることを理解できるはずです。私はおそらくここで何かを見逃しています..

私もandroid-support-v4をphonegap-ua-push、android-support-v4-22.2.0で使用されているものに置き換えようとしましたが、シンボルが不足しているようです:

エラー: シンボル FragmentManagerImpl mFragmentManager が見つかりません。

エラー: シンボル FragmentManagerImpl mChildFragmentManager が見つかりません。

4

2 に答える 2

3

最後の Facebook SDK を使用する Facebook プラグインのこのフォークhttps://github.com/jeduan/cordova-plugin-facebook4を使用して、最終的に問題を解決します。

于 2015-08-19T00:22:20.983 に答える