我有一个音乐服务,在后台处理音乐播放,还有一些其他的事情,如通知需要进行的UI更改活动,存储和恢复队列,通过光标获取歌曲记录,以及每个歌曲改变的时间,它负责更新正在进行的通知的位图.
问题是什么?该服务几乎在用户试图完成的任何时候崩溃.几乎任何其他事情.例如,播放一首歌,然后打开游戏会使服务崩溃,有时像浏览网页上的光线也会让它崩溃.
一些细节:
1 -服务是通过startService(new Intent(this, MyMusicService.class)); 但是当用户离开活动时启动的,我打电话startForeground(mId, mNotification);来显示提供简单控制的持续通知,并且还因为startForeground()服务应该优先考虑因为activityManager杀死这些服务会破坏用户体验(如果服务被杀,音乐就会停止)
2 -我试图重现崩溃,当你做不那么繁重的工作时,肯定会发生这种情况,例如浏览chrome(这会在几乎50%的时间内重现崩溃),并且总是在做启动运行2时.仅供参考,如果没有做任何事情 - 只是在背景上播放音乐并且空闲,播放将根本不会停止,并且它的工作方式正如它所预期的那样.
3 -我用作测试设备的手机绝不是慢速或低内存设备,它是Galaxy Nexus.
4 -我试过捕捉一些长的,有时简单地说:
02-24 06:53:32.586: I/ActivityManager(387): Process com.deadpixels.light.player (pid 27720) has died.
Run Code Online (Sandbox Code Playgroud)
没有任何其他消息,有时相同的消息伴随着WINDEATH:
02-24 06:53:32.586: W/ActivityManager(387): Scheduling restart of crashed service com.deadpixels.light.player/.service.MyMusicService in 5000ms
02-24 06:53:32.602: W/InputDispatcher(387): channel '418d09c8 com.deadpixels.light.player/com.deadpixels.light.player.HomeActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
02-24 06:53:32.602: E/InputDispatcher(387): channel '418d09c8 com.deadpixels.light.player/com.deadpixels.light.player.HomeActivity (server)' ~ …Run Code Online (Sandbox Code Playgroud) 我通常能够解决崩溃,但在这里我不知道它来自哪里.
我使用解析,我只是在后台用完成块做一个请求.应用程序在简单的if条件下崩溃,我几乎无法识别任何内容,无法打印描述,...你有什么想法吗?一个起点?什么?Xcode 6.1真的很奇怪,似乎调试器有问题.
这是崩溃的日志:
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x000000019657a964 __kill + 8
1 MyAPP 0x00000001001f2b70 0x10009c000 + 1403760
2 libsystem_platform.dylib 0x0000000196610958 _sigtramp + 64
3 MyAPP 0x00000001001318cc 0x10009c000 + 612556
4 MyAPP 0x000000010013797c 0x10009c000 + 637308
5 MyAPP 0x0000000100135fc4 0x10009c000 + 630724
6 MyAPP 0x00000001002e408c 0x10009c000 + 2392204
7 MyAPP 0x00000001001dbf78 0x10009c000 + 1310584
8 libdispatch.dylib 0x00000001964393a8 _dispatch_call_block_and_release + 20
9 libdispatch.dylib 0x0000000196439368 _dispatch_client_callout + 12
10 libdispatch.dylib 0x000000019643d97c _dispatch_main_queue_callback_4CF + 928
11 …Run Code Online (Sandbox Code Playgroud) 我有一种情况,我试图解决这些Crashlytics问题,我有这个崩溃日志
Thread : Crashed: com.apple.main-thread
0 libobjc.A.dylib 0x34217f46 objc_msgSend + 5
1 UIKit 0x29a2d5a3 -[UIWebView webView:decidePolicyForNavigationAction:request:frame:decisionListener:] + 182
2 CoreFoundation 0x2630cad4 __invoking___ + 68
3 CoreFoundation 0x26239645 -[NSInvocation invoke] + 300
4 CoreFoundation 0x2623d0c7 -[NSInvocation invokeWithTarget:] + 50
5 WebKitLegacy 0x326d9261 -[_WebSafeForwarder forwardInvocation:] + 224
6 CoreFoundation 0x2630b62f ___forwarding___ + 354
7 CoreFoundation 0x2623d008 _CF_forwarding_prep_0 + 24
8 CoreFoundation 0x2630cad4 __invoking___ + 68
9 CoreFoundation 0x26239645 -[NSInvocation invoke] + 300
10 WebCore 0x31c02729 HandleDelegateSource(void*) + 100
11 CoreFoundation 0x262cefbf __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ …Run Code Online (Sandbox Code Playgroud) 已更新至Android Studio 1.4 Preview和新SDK,现在我获得了:
ERROR - Crashlytics Developer Tools error.
java.lang.IllegalArgumentException: Crashlytics found an invalid API key: null.
Run Code Online (Sandbox Code Playgroud)
我已经卸载了Fabric,再次安装了它,并从中更新了Crashlytics
任何想法我应该做什么?
这是我的build.gradle:http://pastebin.com/VPHpRJte
这是我的androidManifest:http://pastebin.com/Nmdeasx8
我在清单中的API密钥:
android:name="com.crashlytics.ApiKey"
android:value="c13e89xxxxxxxxxxxxx1054b4a
Run Code Online (Sandbox Code Playgroud)
在https://fabric.io/settings/organizations/中:
c13e89xxxxxxxxxxxxxxxxxbf1054b4a
Run Code Online (Sandbox Code Playgroud) 我正在尝试将用户信息设置为在Android应用程序中的崩溃报告中崩溃报告,以便它可以帮助我找出哪些用户遇到了特定的崩溃.我已经探索并发现有3个API可以在崩溃报告中设置用户信息.
那些是,
void Crashlytics.setUserIdentifier(String identifier);
void Crashlytics.setUserName(String name);
void Crashlytics.setUserEmail(String email);
Run Code Online (Sandbox Code Playgroud)
建议使用所有API.所有文档均记录在http://support.crashlytics.com/knowledgebase/articles/120548-how-do-i-set-user-information-
但我不知道,1.如何获取输入这些API的用户标识符,名称和电子邮件详细信息?2.程序中哪个地方可以调用这些碰撞API?
请分享一些想法,如何实现这一点.
问候
安纳达
保存你自己的几个小时的调试,因为我已经浪费了2个星期后寻找神秘的应用程序崩溃的bug.事实证明,如果你向它添加了很多o(请参阅答案以获取更多详细信息)通知请求UNUserNotificationCenter,它将突然崩溃Springboard.我还没有找到解决方法,因为相同的代码适用于iOS 9及更低版本.您似乎无法批量添加之前的通知请求.以下是我每次收到的崩溃(数百名应用用户也是如此).知道我能做什么而不是回到使用UILocalNotifications?
Incident Identifier: 17BC9D5B-AF74-4592-8427-038375C27AE7
CrashReporter Key: a819553d1e72ee25a5ced9ddc79dbf00a7d3851f
Hardware Model: iPad5,3
Process: SpringBoard [2371]
Path: /System/Library/CoreServices/SpringBoard.app/SpringBoard
Identifier: com.apple.springboard
Version: 50 (1.0)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.apple.springboard [71]
Date/Time: 2016-11-16 14:57:04.9159 +0400
Launch Time: 2016-11-16 14:49:20.9981 +0400
OS Version: iPhone OS 10.0 (14A5309d)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 13
Filtered syslog:
None found
Thread 0 name: Dispatch queue: …Run Code Online (Sandbox Code Playgroud) 但我有一些问题,起初我在应用程序包名称右侧有一个橙色检查图像

我在Application类中有这个错误
Caused by: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
install an Android build tool and ask a team member to invite you to this app's organization.
at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:233)
at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:207)
at io.fabric.sdk.android.InitializationTask.onPreExecute(InitializationTask.java:44)
at io.fabric.sdk.android.services.concurrency.AsyncTask.executeOnExecutor(AsyncTask.java:611)
at io.fabric.sdk.android.services.concurrency.PriorityAsyncTask.executeOnExecutor(PriorityAsyncTask.java:43)
at io.fabric.sdk.android.Kit.initialize(Kit.java:69)
at io.fabric.sdk.android.Fabric.initializeKits(Fabric.java:440)
at io.fabric.sdk.android.Fabric.init(Fabric.java:384)
at io.fabric.sdk.android.Fabric.setFabric(Fabric.java:342)
at io.fabric.sdk.android.Fabric.with(Fabric.java:333)
at com.atyno.app.VolleyApplication.onCreate(VolleyApplication.java:78)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1036)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6317)
Run Code Online (Sandbox Code Playgroud) 我们正在开发一个 Android / iOS 移动 SDK,它将被(我们客户的)3rd 方应用程序集成。
因此,我正在尝试确定检测问题/崩溃和日志以进行调试的最佳和标准方法是什么。
请分享您对这里最好的方法的建议,如果有任何可用的阅读。
由于这是我们的产品是一个将与其他应用程序集成的 SDK,我相信我们不能使用像 fabric 这样的 3rd 方库来进行日志/崩溃报告。
我是新手 Android 开发人员,正在尝试调试我们的应用程序崩溃的原因。当我们尝试向 Android 设备发送推送通知时遇到崩溃。这是我需要解决的入职票。我不知道是什么导致了这个问题,可以在 Android N、O 和 P 中重现。我们来自 Fabric 的堆栈跟踪如下所示
Caused by java.lang.SecurityException: UID 10243 does not have permission to content://media/external/audio/media/5927 [user 0]
at android.os.Parcel.createException + 1966(Parcel.java:1966)
at android.os.Parcel.readException + 1934(Parcel.java:1934)
at android.os.Parcel.readException + 1884(Parcel.java:1884)
at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag + 1653(INotificationManager.java:1653)
at android.app.NotificationManager.notifyAsUser + 429(NotificationManager.java:429)
at android.app.NotificationManager.notify + 379(NotificationManager.java:379)
at android.app.NotificationManager.notify + 355(NotificationManager.java:355)
at com.myproject.mobile.notifications.NotificationHelper.process + 66(NotificationHelper.java:66)
at com.myproject.mobile.notifications.NotificationService.constructNotification + 709(NotificationService.java:709)
at com.myproject.mobile.notifications.NotificationService.processNotification + 173(NotificationService.java:173)
at com.myproject.mobile.notifications.PushJobIntentService.onHandleWork + 24(PushJobIntentService.java:24)
at androidx.core.app.JobIntentService$CommandProcessor.doInBackground + 392(JobIntentService.java:392)
at androidx.core.app.JobIntentService$CommandProcessor.doInBackground + 383(JobIntentService.java:383)
at android.os.AsyncTask$2.call + …Run Code Online (Sandbox Code Playgroud)