- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
你好,我希望有人能在这里帮助我。
我正在开发一个使用 UrbanAirship 接收 PushNotifications
的应用程序。
我的问题是,从今天早上开始,我的应用程序在使用 takeOff 初始化 UrbanAirship 时崩溃了。
我正在使用 Android Studio v2.1.1(稳定版)并更新了我的构建和平台工具以使用最新版本。崩溃发生后,我通过使用这些工具的旧版本和不同的 Android Studio 版本(2.0、1.3 和 1.5)测试它是否是由新工具引起的。所以我确定这不应该是问题所在。
这是我使用的代码和来 self 的 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
我还尝试在不排除 google.gms 和 android 支持库的情况下使用 UrbanAirship-SDK 版本 6.4.1,但没有任何效果。
此外,我更新了我的 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 的回答,它给出了查看示例项目的提示。我现在没有足够的声誉,但是当我有赞成票时应该会自动添加。
:)
关于Android UrbanAirship 在起飞时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37322365/
我有一段代码看起来像这样: void update_clock(uint8_t *time_array) { time_t time = *((time_t *) &time_array[0]
应用程序崩溃了 :( 请帮助我.. 在这方面失败了。我找不到错误?该应用程序可以连接到 iTunesConnect 但它会出错。 谁能根据下面的崩溃报告判断问题出在哪里? share_with_app
小二是新来的实习生,作为技术 leader,我给他安排了一个非常简单的练手任务,把前端 markdown 编辑器里上传的图片保存到服务器端,结果他真的就把图片直接保存到了服务器上,这下可把我气坏了,就
我正在创建一个函数,它将目录路径作为参数传递,或者如果它留空,则提示用户输入。 我已经设置了我的 PATH_MAX=100 和 if 语句来检查 if ((strlen(folder path) +
我已将“arial.ttf”文件(从我的/Windows/Fonts 文件夹中获取)加载到内存中,但是将其传递到 FT_New_Memory_Face 时会崩溃(在 FT_Open_Face 中的某处
我正在尝试在我的计算机上的两个控制台之间进行 rtsp 流。 在控制台 1 上,我有: ffmpeg -rtbufsize 100M -re -f dshow -s 320x240 -i video=
我正在尝试使用 scio_beast在一个项目中。我知道它还没有完成,但这并不重要。我已经设法让它工作得很好。 我现在正在尝试连接到 CloudFlare 后面的服务器,我知道我需要 SNI 才能工作
我有一个带有关联宏的下拉列表,如下所示: Sub Drop() If Range("Hidden1!A1") = "1" Then Sheets("Sheet1").Se
我对 bash 很陌生。我要做的就是运行这个nvvp -vm /usr/lib64/jvm/jre-1.8.0/bin/java无需记住最后的路径。我认为 instafix 就是这样做...... n
我在 Windows 上使用 XAMPP 已经两年左右了,它运行完美,没有崩溃没有问题。 (直到四个月前。) 大约四个月前,我们将服务器/系统升级到了更快的规范。 这是旧规范的内容 - Windows
我面临着一个非常烦人的 android 崩溃,它发生在大约 1% 的 PRODUCTION session 中,应用程序始终在后台运行。 Fatal Exception: android.app.Re
尝试使用下面的函数: public void createObjectType() { try { mCloudDB.createObjectType(ObjectTypeIn
由于我正在进行的一个项目,我在 CF11 管理员中弄乱了类路径,我设法使服务器崩溃,以至于我唯一得到的是一个漂亮的蓝屏和 500 错误.我已经检查了日志,我会把我能做的贴在帖子的底部,但我希望有人会启
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 10 个月前关闭。 Improve
我最近从 xcode 3.x 更新到 4.2,当我在 4.2 中运行应用程序时,我遇到了核心数据问题。我还更新到了 iOS 5,所以问题可能就在那里,我不太确定。 这些应用程序在 3.x 中运行良好,
我是一个相对较新的 iPhone 应用程序开发人员,所以我的知识有点粗略,所以如果这是一个微不足道的问题,请原谅我。 我有一个导航应用程序,它通过在navigationController对象上调用p
if ([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailViewController
你能帮我吗? 我正在设置 UILocalNotification,当我尝试设置其 userInfo 字典时,它崩溃了。 fetchedObjects 包含 88 个对象。 这是代码: NSDi
为什么我的代码中突然出现 NSFastEnumeration Mutation Handler 崩溃。我很茫然为什么会突然出现这个崩溃以及如何解决它。 最佳答案 崩溃错误: **** 由于未捕获的异常
当我从表中删除行时,我的应用程序崩溃了。这是我检测到错误和堆栈跟踪的来源。谢谢! //delete row from database - (void)tableView:(UITableView *
我是一名优秀的程序员,十分优秀!