我正在尝试将Matt Gallagher的全局异常处理程序添加到我的一个项目中.运行他的示例项目位于:
http://cocoawithlove.com/2010/05/handling-unhandled-exceptions-and.html
我遇到一个问题,我按下退出并且应用程序没有退出.它只是让我回到应用程序.我尝试使用kill()调用来杀死应用程序,但无法让应用程序退出.
来自alertview的回调似乎只处理Continue情况,并且不处理强制应用程序退出.
- (void)alertView:(UIAlertView *)anAlertView clickedButtonAtIndex:(NSInteger)anIndex
{
if (anIndex == 0)
{
dismissed = YES;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道应用程序本质上不能自行退出,但在这种情况下,如果应用程序崩溃,我希望用户按下退出按钮并让应用程序退出.
谢谢!
我是Android新手,我的应用程序涉及大量的互联网访问,很多时候,当需要来自Web服务的数据不可用时,我的应用程序崩溃了.
我试图避免尽可能多的情况,但我不确定我的应用程序是否没有崩溃.
我正在使用名为"delight circle"的应用程序,有时该应用程序崩溃并向我显示此Toast:
"应用程序崩溃,并向管理员发送报告"
并带我回到之前的活动或上一个动作,从这里我可以再次正常使用该应用程序.
我有两个问题:
如何在应用程序崩溃一次后使应用程序正常工作.在我的应用程序中,如果它崩溃然后它要求我关闭力量,当我点击它,它带我到前一个活动(或行动),但没有任何工作,如果我试图做任何事情,它要求力量再次关闭,我最终强制关闭应用程序从设置 - >应用程序 - > myApp - > foce关闭.
如何发送实际导致应用程序崩溃的报告?现在我在每个活动中都有很多日志,所以现在如果它崩溃我可以找出确切的原因并解决.但是当我发布应用程序时,我该怎么做?
谢谢
嘿伙计我需要帮助配置一些源代码,基本上当一个错误发生通过电子邮件发送崩溃报告给我.这里有一些代码我正在玩我只需要有一点经验的人忽略它并帮助我清理它.
谢谢,
public final class EmailUtils {
private EmailUtils()
{
}
private static int bytesToMb(long l)
{
return (int)((double)l / 1024D / 1024D);
}
private static int getAvailableInternalMemorySize()
{
StatFs statfs = new StatFs(Environment.getDataDirectory().getPath());
return bytesToMb((long)statfs.getBlockSize() * (long)statfs.getAvailableBlocks());
}
private static String getEmailText(Context context)
{
String s = "";
String s11;
PackageInfo packageinfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
String s1 = packageinfo.versionName;
int i = packageinfo.versionCode;
String s2 = packageinfo.packageName;
String s3 = Build.MODEL;
String s4 = android.os.Build.VERSION.RELEASE;
String s5 = android.os.Build.VERSION.SDK; …Run Code Online (Sandbox Code Playgroud) 我的iPhone App在iOS 5上工作正常,但在iOS4上的Splashscreen之后崩溃了.(使用PhoneGap)(使用HockeyApp.net).
我是ios开发的新手.我开发了一个部署目标为4.0的ios应用程序.它完美地安装在iPad 2(os-5.1)和iPod touch([4g] os-5.0.1)上.它安装在iPhone 4(os-4.2.6)和iPod touch([2g] os-4.2.1)上但不能正常工作.它显示了闪屏,但在此之后崩溃了.我在代码中添加了自己的日志函数,发现在进入didFinishLaunchingWithOptions函数之前它已经崩溃了.
我正在使用HockeyApp.net下载ipa文件.我没有得到确切的问题,以下是我的AppDelegate.m文件.
AppDelegate.m: https://gist.github.com/4343470
崩溃报告:崩溃报告:https://gist.github.com/4343472
请帮我解决这个问题.先感谢您.
[免责声明:我查看了其他stackexchange网站,找不到发布此问题的完美地点,所以我会在这里发布.如果你知道这应该是什么,我很高兴把它拿下来放在别的地方.请不要因为那个而投票
目前,我们使用第三方工具(HockeyApp)来监控Android应用程序上的崩溃报告.他们有一个API,可用于查询崩溃报告.我希望能够拥有一个自动崩溃报告系统,如果满足某些条件,我会收到一封电子邮件(或者可能是一个电话).例如,假设我在一小时内遇到9001次崩溃,我希望收到警报.
有没有这样做的工具?(对于android的崩溃监控,使用hockeyapp是首选)
我考虑使用ActionMailer apis推出自己的Ruby on Rails应用程序.有没有人有这方面的经验并推荐它?或者什么是更好的方法?(如果我必须推出自己的工具,开发时间至关重要)
您/其他公司在这种情况下使用什么样的工具(崩溃警报/寻呼机职责)?
我有以下代码将应用程序内购买添加到应用程序中.一切都在我的设备上完美运行.但是,当我添加Crashlytics对应用程序的支持时,我每天都会收到数百份崩溃报告.为什么?我真的无法理解提供的代码有什么问题.
#define kInAppPurchaseManagerProductsFetchedNotification @"kInAppPurchaseManagerProductsFetchedNotification"
#define kInAppPurchaseManagerTransactionFailedNotification @"kInAppPurchaseManagerTransactionFailedNotification"
#define kInAppPurchaseManagerTransactionSucceededNotification @"kInAppPurchaseManagerTransactionSucceededNotification"
#define gFullVersion @"%@.FullVersion"
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
[self loadStore];
}
}
- (NSString*)getProductId:(NSString*)feature {
NSBundle *bundle = [NSBundle mainBundle];
NSDictionary *info = [bundle infoDictionary];
NSString *bundleIdentifier = [info objectForKey: @"CFBundleIdentifier"];
return bundleIdentifier;
}
- (void)requestProducts:(NSString*)feature {
NSSet *productIdentifiers = [NSSet setWithObject:[self getProductId:feature]];
if ([feature isEqualToString:gFullVersion]) {
if (productFullVersionRequest) {
[productFullVersionRequest release];
productFullVersionRequest = nil;
}
productFullVersionRequest = [[SKProductsRequest …Run Code Online (Sandbox Code Playgroud) 我的应用程序被拒绝的原因是"我们无法审核您的应用程序,因为它在启动时崩溃"并且还向我发送了崩溃报告,我在所有可能的设备上测试了我的应用程序,但我无法重现此问题.
任何人都可以帮助我如何解决这个问题.
Incident Identifier: 6A6F574E-5071-4009-89FD-BD0B92C5E0FF
CrashReporter Key: 2977b2ca2b0a157c0cbb98cbe60bd58df34b0499
Hardware Model: xxx
Process: Odoo HRM [4030]
Path: /private/var/mobile/Containers/Bundle/Application/D341FB0E-30F5-4FB2-83F9-15003425BBE9/Odoo HRM.app/Odoo HRM
Identifier: com.serpentcs.OdooHRM
Version: 1.1 (1.0)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2015-05-08 19:34:22.230 -0700
Launch Time: 2015-05-08 19:34:22.126 -0700
OS Version: iOS 8.3 (12F69)
Report Version: 105
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0
Last Exception Backtrace:
(0x1853082d8 0x196a280e4 0x185308218 0x186171a28 0x1000252d0 0x189d48c84 0x189d48994 0x189d4f1d0 0x189d4c880 0x189dbe8ec 0x189fd2a94 0x189fd5208 0x189fd3778 0x18d9e93c8 0x1852c027c 0x1852bf384 …Run Code Online (Sandbox Code Playgroud) Crashlytics 功能强大,但它会自动将dSYM文件上传到服务器以进行崩溃问题分析,这是否足够安全?
我收到有关同一错误的多次崩溃报告,但我不知道可能导致它的原因.
是抛出的异常是ArrayIndexOutOfBoundsException在android.widget.TextView.makeSingleLayout.
我知道它不是关于Android版本和设备类型,因为它从多个版本和设备获取报告.
以下是我从Crashlytics获得的内容:
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=125; index=-1
at android.text.StaticLayout.calculateEllipsis(StaticLayout.java:785)
at android.text.StaticLayout.out(StaticLayout.java:704)
at android.text.StaticLayout.generate(StaticLayout.java:410)
at android.text.StaticLayout.<init>(StaticLayout.java:140)
at android.widget.TextView.makeSingleLayout(TextView.java:6199)
at android.widget.TextView.makeNewLayout(TextView.java:6056)
at android.widget.TextView.onMeasure(TextView.java:6432)
at android.view.View.measure(View.java:16653)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1231)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:590)
at android.view.View.measure(View.java:16653)
at android.widget.ListView.setupChild(ListView.java:1870)
at android.widget.ListView.makeAndAddView(ListView.java:1793)
at android.widget.ListView.fillDown(ListView.java:691)
at android.widget.ListView.fillFromTop(ListView.java:752)
at android.widget.ListView.layoutChildren(ListView.java:1616)
at android.widget.AbsListView.onLayout(AbsListView.java:2087)
at android.view.View.layout(View.java:14973)
at android.view.ViewGroup.layout(ViewGroup.java:4637)
at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:636)
at android.view.View.layout(View.java:14973)
at android.view.ViewGroup.layout(ViewGroup.java:4637)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14973)
at android.view.ViewGroup.layout(ViewGroup.java:4637)
at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1167)
at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:852)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:871)
at android.view.View.layout(View.java:14973)
at android.view.ViewGroup.layout(ViewGroup.java:4637)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试从程序中创建的go例程中捕获崩溃/紧急情况,以便将其发送到崩溃错误报告服务器(例如Sentry / Raygun)
例如,
func main() {
go func() {
// Get this panic
panic("Go routine panic")
}()
}
Run Code Online (Sandbox Code Playgroud)
答案表明,一个goroutine无法从另一个goroutine的恐慌中恢复。
惯用的方式是什么?