diff --git a/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java b/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java index 4027097..ce50301 100644 --- a/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java +++ b/src/android/uk/co/reallysmall/cordova/plugin/firebase/crashlytics/LogErrorHandler.java @@ -55,10 +55,15 @@ public JavascriptException(String message, StackTraceLine[] stackTraceLines) { super(message); StackTraceElement[] stackTrace = new StackTraceElement[stackTraceLines.length]; for(int i = 0; i < stackTraceLines.length; i++) { + String filename = stackTraceLines[i].fileName; + if(stackTraceLines[i].columnNumber > 0) { + filename = filename + ":" + stackTraceLines[i].lineNumber + ":" + stackTraceLines[i].columnNumber; + } + stackTrace[i] = new StackTraceElement( stackTraceLines[i].className, stackTraceLines[i].functionName, - stackTraceLines[i].fileName, + filename, stackTraceLines[i].lineNumber ); } @@ -72,6 +77,7 @@ private static class StackTraceLine { public String functionName; public String fileName; public int lineNumber; + public int columnNumber; private StackTraceLine() { } @@ -83,6 +89,7 @@ public static StackTraceLine fromJSONObject(JSONObject json) throws JSONExceptio sl.functionName = json.optString("functionName", "<>"); sl.fileName = json.getString("fileName"); sl.lineNumber = json.getInt("lineNumber"); + sl.columnNumber = json.optInt("columnNumber", -1); return sl; } diff --git a/types/index.d.ts b/types/index.d.ts index 77aaf6c..05c9e68 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -22,6 +22,7 @@ declare namespace FirebaseCrashlytics { functionName: string; fileName: string; lineNumber: number; + columnNumber?: number; } }