android - 如何在 ionic 应用程序(cordova/phonegap)中获得完整的异常堆栈跟踪而不是一行?

标签 android exception cordova ionic-framework

因为我不知道问题出在哪里,所以这个问题可能不是关于 ionic 的,而是关于 cordova/phonegap 的。我已经很长时间没有做过 phonegap 开发了,所以我不记得这是正常/预期的行为还是我错过了什么。

我的 logcat 中出现这种错误:

11-30 14:39:28.592  16782-16836/com.ionicframework.myproject E/MyProject﹕ Exception: java.lang.NullPointerException

实际上就是这样……我的应用程序中生成的所有异常似乎都以某种方式被截断了。我尝试显示消息或异常,结果是一样的...

生成异常的代码在我的插件中,我知道它的来源,但我可以提供它以供引用:

 @Override
    public boolean execute(String action, JSONArray jsonArray, CallbackContext callbackContext) throws JSONException {
        try {
            JSONObject visible = jsonArray.getJSONObject(0);
            toggleVisibility(visible.getBoolean("visible"), visible.getInt("duration"));
            callbackContext.success();
            return true;
        } catch(Exception e) {
            Log.e(TAG, "Exception: " + e);
            callbackContext.error(e.getMessage());
            return false;
        }

关于这一点有什么建议吗?

谢谢

最佳答案

实际上,printStackTrace 出于某种原因在这里不起作用。这里的问题是错误地使用了 Android 的 Log 类。

这不会打印堆栈跟踪:

Log.e(TAG, "Exception: " + e);

这将打印完整的堆栈跟踪:

Log.e(TAG, "Exception: ", e);

关于android - 如何在 ionic 应用程序(cordova/phonegap)中获得完整的异常堆栈跟踪而不是一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27214020/

相关文章:

Android 异常 getCause - getMessage

android - 将文件存储在 Cordova App 的文件夹中

ios - 在没有证书的情况下在 Xcode 4.3+ 中部署 iOS App

android - Phonegap android 应用程序使用 durandal : page with ajax call not opening

android - 如何在 Android.mk 中添加 C-only 选项?

java - 错误: package com. oculus.vrappframework不存在

java - Java中有没有一种方法可以使用Instrumentation来拦截对象的创建?

android - 将 mediacodec 与 createInputSurface 一起使用时强制 i 帧

android - 在 ListActivity 中显示 SQL 连接的结果

c# - 可以处理错误的组件的异常或返回状态