Android UrbanAirship在takeOff中崩溃

Android UrbanAirship在takeOff中崩溃,第1张

概述你好,我希望有人可以帮助我. 我正在开发一个使用UrbanAirship接收PushNotifications的应用程序. 我的问题是,从今天早上开始,当使用takeOff初始化UrbanAirship时,我的应用程序崩溃了. 我正在使用Android Studio v2.1.1(稳定版)并更新了我的Build和Platform-Tools以使用最新版本.崩溃发生后,我通过使用旧版本的这些工具和不 你好,我希望有人可以帮助我.

我正在开发一个使用UrbanAirship接收PushNotifications的应用程序.

我的问题是,从今天早上开始,当使用takeOff初始化UrbanAirship时,我的应用程序崩溃了.

我正在使用Android Studio v2.1.1(稳定版)并更新了我的Build和Platform-Tools以使用最新版本.崩溃发生后,我通过使用旧版本的这些工具和不同的AndroID Studio版本(2.0,1.3和1.5)来测试它是否是由新工具引起的.所以我相信不应该是问题.

这是我使用的代码和我的LogCat中的堆栈跟踪:

UAirship.takeOff(this,Config.getoptions(),mAirshipReadyCallback);

getoptions返回以下内容:

public static AirshipConfigOptions getoptions() {    return new AirshipConfigOptions.Builder()        .setDevelopmentAppKey("Key")        .setDevelopmentAppSecret("Secret")        .setProductionAppKey("Key")        .setProductionAppSecret("Secret")        .setInProduction(!BuildConfig.DEBUG)        .setGCMSender("Sender")        .setProductionLogLevel(3).build();}

我的回调如下:

private UAirship.OnReadyCallback mAirshipReadyCallback = new UAirship.OnReadyCallback() {        @OverrIDe        public voID onAirshipReady(UAirship uAirship) {            DefaultNotificationFactory notificationFactory;            notificationFactory = new DefaultNotificationFactory(getApplicationContext());            notificationFactory.setSmalliconID(R.drawable.ic_push);            notificationFactory.setLargeIcon(R.drawable.ic_launcher);            try {                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {                    notificationFactory.setcolor(getcolor(R.color.main_List_item_text_enabled));                } else {                    notificationFactory.setcolor(getResources().getcolor(R.color.main_List_item_text_enabled));                }            } catch (Resources.NotFoundException ex) {                Timber.e(ex.getCause(),ex.getMessage());                notificationFactory.setcolor(color.parsecolor("0e457e"));            }            // Enable user notifications            Timber.i("Enable Airship!");            Timber.i("UAirship ChannelID: " + UAirship.shared().getPushManager().getChannelID());            uAirship.getPushManager().setNotificationFactory(notificationFactory);            uAirship.getPushManager().setUserNotificationsEnabled(true);        }    };

最后是StackTrace:

java.lang.IncompatibleClassChangeError: The method 'java.io.file androID.support.v4.content.ContextCompat.getNoBackupfilesDir(androID.content.Context)' was expected to be of type virtual but instead was found to be of type direct (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)at com.Google.androID.gms.iID.zzd.zzeb(UnkNown Source)at com.Google.androID.gms.iID.zzd.<init>(UnkNown Source)at com.Google.androID.gms.iID.zzd.<init>(UnkNown Source)at com.Google.androID.gms.iID.InstanceID.zza(UnkNown Source)at com.Google.androID.gms.iID.InstanceID.getInstance(UnkNown Source)at com.urbanairship.push.GcmRegistrar.register(GcmRegistrar.java:62)at com.urbanairship.push.ChannelServiceDelegate.onUpdatePushRegistration(ChannelServiceDelegate.java:174)at com.urbanairship.push.ChannelServiceDelegate.onHandleIntent(ChannelServiceDelegate.java:110)at com.urbanairship.BaseIntentService.onHandleIntent(BaseIntentService.java:103)at androID.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)at androID.os.Handler.dispatchMessage(Handler.java:102)at androID.os.Looper.loop(Looper.java:135)at androID.os.HandlerThread.run(HandlerThread.java:61)

昨天一切正常,我没有更新我使用的任何库.

提前谢谢你,问候:)

编辑

这是我的gradle依赖项:

dependencIEs {compile filetree(dir: 'libs',include: ['*.jar','*.aar'])repositorIEs {    mavenCentral()    flatDir {        dirs 'libs'    }    maven { url 'https://repo.commonsware.com.s3.amazonaws.com' }    maven { url 'https://urbanairship.bintray.com/androID' }    maven { url 'https://download.01.org/crosswalk/releases/crosswalk/androID/maven2' }}    compile('com.urbanairship.androID:urbanairship-sdk:7.1.3') {    exclude group: 'com.Google.androID.support',module: 'support-v4'    exclude group: 'com.Google.androID.gms',module: 'play-services-gcm'        transitive = true}compile('de.keyboardsurfer.androID.Widget:crouton:1.8.5@aar') {    exclude group: 'com.Google.androID.support',module: 'support-v4'    transitive = true}compile('com.facebook.androID:facebook-android-sdk:4.8.1') {    exclude group: 'com.Google.androID.support',module: 'support-v4'}compile 'com.androID.support:multIDex:1.0.1'compile 'com.androID.support:support-v4:23.3.0'compile 'com.androID.support:appcompat-v7:23.3.0'compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'compile 'com.squareup.okhttp:okhttp:2.5.0'compile 'com.squareup.okhttp:logging-interceptor:2.6.0'compile 'com.Google.code.gson:gson:2.4'compile 'com.jakewharton:butterknife:5.1.1'compile 'com.jakewharton.timber:timber:4.1.1'compile 'commons-io:commons-io:2.4'compile 'org.apache.commons:commons-lang3:3.4'compile 'com.Google.androID.gms:play-services-analytics:8.4.0'compile 'com.Google.androID.gms:play-services-gcm:8.4.0'compile 'com.Google.androID.gms:play-services-ads:8.4.0'compile('com.crashlytics.sdk.androID:crashlytics:2.5.2@aar') {    transitive = true;}compile 'org.xwalk:xwalk_core_library:16.45.421.19'compile 'com.amplitude:androID-sdk:2.5.0'

}

编辑2

我也尝试使用UrbanAirship-SDK版本6.4.1而不排除Google.gms和androID支持库,没有任何影响.

此外,我更新了我的gradle中的每个可能的依赖项使用最新版本(只是更改):

compile'com.urbanairship.androID:urbanairship-sdk:7.1.3'compile 'com.Google.androID.gms:play-services:9.0.0'compile 'com.androID.support:appcompat-v7:23.4.0'compile 'com.androID.support:support-v4:23.4.0'

仍然没有变化

解决方法 正如@ralepinski指出的那样. UA的示例应用程序正如预期的那样工作.所以我深入研究了库和gradle的使用,并发现,这个问题是由内部使用引起的

'com.androID.support:support-v4:23.4.0''com.androID.support:appcompat-v7:23.4.0'

一些使用过的插件也使用这些库,冲突在于使用这些库的不同版本.
我通过在gradle中使用force命令解决了这个问题(见下文):

configurations.all {    resolutionStrategy {        force 'com.androID.support:design:23.4.0'        force 'com.androID.support:support-v4:23.4.0'        force 'com.androID.support:appcompat-v7:23.4.0'    }}

我要感谢大家的帮助,并提出@ralepinskis的回答,该回答给出了提示,看看示例项目.我现在没有足够的声誉,但是当我有upVote应该自动添加.

总结

以上是内存溢出为你收集整理的Android UrbanAirship在takeOff中崩溃全部内容,希望文章能够帮你解决Android UrbanAirship在takeOff中崩溃所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1123499.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存