我正在尝试提供一个帮助类UIAlertController.因为它是一个帮助类,所以我希望它不管视图层次结构如何工作,并且没有关于它的信息.我能够显示警报,但当它被解雇时,应用程序崩溃了:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'Trying to dismiss UIAlertController <UIAlertController: 0x135d70d80>
with unknown presenter.'
Run Code Online (Sandbox Code Playgroud)
我正在创建弹出窗口:
guard let window = UIApplication.shared.keyWindow else { return }
let view = UIView()
view.isUserInteractionEnabled = true
window.insertSubview(view, at: 0)
window.bringSubview(toFront: view)
// add full screen constraints to view ...
let controller = UIAlertController(
title: "confirm deletion?",
message: ":)",
preferredStyle: .alert
)
let deleteAction = UIAlertAction(
title: "yes",
style: .destructive,
handler: { _ in
DispatchQueue.main.async {
view.removeFromSuperview()
completion()
} …Run Code Online (Sandbox Code Playgroud) 我一直在尝试使用Java的ProcessBuilder在Linux中启动应该"长期"运行的应用程序.该程序运行的方式是启动一个命令(在这种情况下,我正在启动一个媒体播放应用程序),允许它运行,并检查以确保它没有崩溃.例如,检查PID是否仍处于活动状态,然后重新启动该进程(如果已经死亡).
我现在遇到的问题是PID在系统中仍然存在,但应用程序的GUI挂起.我尝试将ProcessBuilder(cmd).start()转换为一个单独的线程,但这似乎并没有解决任何问题,正如我希望的那样.
基本上结果是,对于用户来说,程序APPEARS已经崩溃,但是杀死驱动ProcessBuilder.start()进程的Java进程实际上允许创建的进程恢复其正常行为.这意味着Java应用程序中的某些东西干扰了生成的进程,但此时我完全不知道是什么.(因此为什么我尝试将它分成另一个线程,似乎没有解决任何问题)
如果有人有任何意见/想法,请让我知道,因为我不能为我的生活想到如何解决这个问题.
编辑:我不关心从Process创建的I/O流,因此没有采取任何措施来解决这个问题 - 这是否会导致流程本身挂起?
我尝试按照这两个教程(或由于版本差异而适用的部分)来安装SDL 2.0.2以使用Xcode 5.1:
运行链接了SDL 2框架的任何程序会导致Xcode崩溃并出现以下问题详细信息:
Process: Xcode [1787]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 5.1 (5084)
Build Info: IDEFrameworks-5084000000000000~21
App Item ID: 497799835
App External ID: 444172641
Code Type: X86-64 (Native)
Parent Process: launchd [257]
Responsible: Xcode [1787]
User ID: 501
PlugIn Path: /Library/Frameworks/SDL2.framework/Versions/A/SDL2
PlugIn Identifier: org.libsdl.SDL2
PlugIn Version: 2.0.2 (2.0.2)
Date/Time: 2014-03-13 04:24:59.771 +0200
OS Version: Mac OS X 10.9.2 (13C64)
Report Version: 11
Anonymous UUID: EFECF2A0-A489-055E-0904-D3CD9E756EB0
Crashed Thread: 21 <lldb.process.internal-state(pid=1804)>
Exception Type: EXC_BAD_ACCESS (Code Signature Invalid)
Exception …Run Code Online (Sandbox Code Playgroud) 我刚刚在Google Play商店推出了一个应用程序,我正在探索开发人员控制台并查看了标签Crashes and ANR.
ANR代表什么?
此外,我的应用程序似乎已经在我朋友的一些电话上崩溃了,但他们无法"报告"此类崩溃.我应该如何启用此类功能以便用户报告崩溃,以便在Crashes/ANR选项卡下的开发人员控制台中查看?
我创建了一个应用程序,它定期启动从服务器检索信息的服务.
我使用AlarmManager来安排服务.
这很好用,应用程序每30分钟收到一次警报.
该应用程序工作正常,但经过一整夜的不活动 - 我启动应用程序,它崩溃与错误:'无法初始化显示事件接收器'.
这完美无缺.
我搜索了这个问题很长一段时间,发现其他人有同样的问题,但还没有解决方案.
Process: it.unipi.iet.portolan.traceroute, PID: 13092
java.lang.RuntimeException: Failed to initialize display event receiver. status=-2147483648
at android.view.DisplayEventReceiver.nativeInit(Native Method)
at android.view.DisplayEventReceiver.<init>(DisplayEventReceiver.java:61)
at android.view.Choreographer$FrameDisplayEventReceiver.<init>(Choreographer.java:695)
at android.view.Choreographer.<init>(Choreographer.java:169)
at android.view.Choreographer.<init>(Choreographer.java:72)
at android.view.Choreographer$1.initialValue(Choreographer.java:98)
at android.view.Choreographer$1.initialValue(Choreographer.java:91)
at java.lang.ThreadLocal$Values.getAfterMiss(ThreadLocal.java:430)
at java.lang.ThreadLocal.get(ThreadLocal.java:65)
at android.view.Choreographer.getInstance(Choreographer.java:194)
at android.view.ViewRootImpl.<init>(ViewRootImpl.java:370)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:248)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2871)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:145)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5141)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud) 我有一个进程的核心转储文件可能有文件描述符泄漏(它打开文件和套接字,但显然有时会忘记关闭其中一些).有没有办法在崩溃之前找出进程打开了哪些文件和套接字?我无法轻易重现崩溃,因此分析核心文件似乎是获取bug的唯一方法.
我试图在另一个视图以模态方式呈现后直接显示模态视图(第二个是出现的加载视图).
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// Show load
LoadViewController *loader = [[LoadViewController alloc] init];
[self presentModalViewController: loader animated:NO];
[loader release];
}
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我得到一个"程序接收信号:"EXC_BAD_ACCESS"." 错误.
堆栈跟踪是:
0 0x30b43234 in -[UIWindowController transitionViewDidComplete:fromView:toView:]
1 0x3095828e in -[UITransitionView notifyDidCompleteTransition:]
2 0x3091af0d in -[UIViewAnimationState sendDelegateAnimationDidStop:finished:]
3 0x3091ad7c in -[UIViewAnimationState animationDidStop:finished:]
4 0x0051e331 in run_animation_callbacks
5 0x0051e109 in CA::timer_callback
6 0x302454a0 in CFRunLoopRunSpecific
7 0x30244628 in CFRunLoopRunInMode
8 0x32044c31 in GSEventRunModal
9 0x32044cf6 in GSEventRun
10 0x309021ee in UIApplicationMain
11 0x00002154 in main at main.m:14
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我完全难过了!加载视图为空,因此肯定没有任何事情导致错误.是否与在同一个事件循环中以模态方式启动2个视图有关? …
有谁知道如何从客户那里获取崩溃日志?而不是手动要求他们同步并转到此目录和此目录并发送它.
是否有任何自动方式将崩溃报告发送到我们的服务器?
我有一个使用Core Data的Swift项目,生成的代码saveContext()导致Xcode因SourceKitService Crashed错误而崩溃.当我评论它时,错误停止,似乎self.managedObjectContext是导致错误.我已经注释掉了我的代码,所以它就像一个新项目,但它仍然崩溃.谢谢
(Xcode 6.0.1)
func saveContext () {
if let moc = self.managedObjectContext {
var error: NSError? = nil
if moc.hasChanges && !moc.save(&error) {
// Replace this implementation with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个新项目并复制了我的代码,新项目很好(并且完全一样),所以我向苹果公司报告这是一个潜在的错误.
谢谢
更新: …
我已经在我的应用程序中实现了材料设计,它在<Android 5上运行得很好但是当我尝试在Android 5.0及更高版本上运行时,我在我的logcat中得到以下内容.
FATAL EXCEPTION main
Process com.test.test, PID 3195
java.lang.RuntimeException Unable to start activity ComponentInfo{com.test.test/com.test.test.MainActivity} java.lang.RuntimeException A TaskDescription's primary color should be opaque
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java2360)
at android.app.ActivityThread.access$800(ActivityThread.java144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java1278)
at android.os.Handler.dispatchMessage(Handler.java102)
at android.os.Looper.loop(Looper.java135)
at android.app.ActivityThread.main(ActivityThread.java5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java694)
Caused by java.lang.RuntimeException A TaskDescription's primary color should be opaque
at android.app.ActivityManager$TaskDescription.<init>(ActivityManager.java536)
at android.app.Activity.onApplyThemeResource(Activity.java3677)
at android.view.ContextThemeWrapper.initializeTheme(ContextThemeWrapper.java140)
at android.view.ContextThemeWrapper.setTheme(ContextThemeWrapper.java85)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java2244)
... 10 more
Run Code Online (Sandbox Code Playgroud)
这是我的风格:
<resources>
<!--
Base application theme, dependent on API level. …Run Code Online (Sandbox Code Playgroud)