其他分享
首页 > 其他分享> > Urban-Airship Facebook Cordova插件android-support-v4冲突

Urban-Airship Facebook Cordova插件android-support-v4冲突

作者:互联网

我正在尝试将Urban-airship cordova插件(phonegap-ua-push)与Facebook插件(phonegap-facebook-plugin)一起使用,但是我遇到此错误:

Multiple dex files define 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: No virtual method setColor(I)Landroid/support/v4/app/NotificationCompat$Builder; in class Landroid/support/v4/app/NotificationCompat$Builder; or its super classes (declaration of ‘android.support.v4.app.NotificationCompat$Builder’ appears in /data/app/com.****.****-1/base.apk)

是否有人同时使用了facebook和urbanairship插件,如何实现?

编辑:
正如ralepinski所说,我试图从platforms / android / FacebookLib / libs /文件夹中删除android-support-v4.jar,当我这样做时,出现以下错误提示音:

FacebookLib/src/com/facebook/AppEventsLogger.java:24: error: package
android.support.v4.content does not exist 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.我可能在这里错过了一些了解.

我也尝试用phonegap-ua-push所使用的android-support-v4代替android-support-v4-22.2.0,但似乎缺少一些符号:

error: cannot find symbol
FragmentManagerImpl mFragmentManager;

error: cannot find symbol
FragmentManagerImpl mChildFragmentManager;

解决方法:

我终于解决了我的问题,方法是使用Facebook插件的fork https://github.com/jeduan/cordova-plugin-facebook4,它使用了最后一个Facebook sdk.

标签:urbanairship-com,cordova,android,dex,phonegap-facebook-plugin
来源: https://codeday.me/bug/20191028/1948786.html