Skip to content

Commit e68dc48

Browse files
Merge pull request #55 from bugsnag/run-rake-update
run rake update
2 parents 1a8f573 + 832a74d commit e68dc48

File tree

2 files changed

+18
-33
lines changed

2 files changed

+18
-33
lines changed

example/Assets/Standard Assets/Bugsnag/Bugsnag.cs

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public class NativeBugsnag {
6464
public static extern void SetUser(string userId, string userName, string userEmail);
6565
#elif UNITY_ANDROID && !UNITY_EDITOR
6666
public static AndroidJavaClass Bugsnag = new AndroidJavaClass("com.bugsnag.android.Bugsnag");
67+
public static AndroidJavaClass BugsnagUnity = new AndroidJavaClass("com.bugsnag.android.unity.UnityClient");
6768
public static Regex unityExpression = new Regex ("(\\S+)\\s*\\(.*?\\)\\s*(?:(?:\\[.*\\]\\s*in\\s|\\(at\\s*\\s*)(.*):(\\d+))?", RegexOptions.IgnoreCase | RegexOptions.Multiline);
6869

6970
public static void Register(string apiKey) {
@@ -72,7 +73,12 @@ public static void Register(string apiKey) {
7273
AndroidJavaObject activity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
7374
AndroidJavaObject app = activity.Call<AndroidJavaObject>("getApplicationContext");
7475

75-
Bugsnag.CallStatic<AndroidJavaObject> ("init", app, apiKey);
76+
jvalue[] args = new jvalue[2] {
77+
new jvalue() { l = app.GetRawObject() },
78+
new jvalue() { l = AndroidJNI.NewStringUTF(apiKey) },
79+
};
80+
IntPtr methodId = AndroidJNI.GetStaticMethodID(BugsnagUnity.GetRawClass(), "init", "(Landroid/content/Context;Ljava/lang/String;)V");
81+
AndroidJNI.CallStaticVoidMethod(BugsnagUnity.GetRawClass(), methodId, args);
7682
Notify("errorClass", "error message", "error", "", new System.Diagnostics.StackTrace (1, true).ToString (), null, true);
7783
}
7884

@@ -126,39 +132,19 @@ public static void Notify(string errorClass, string errorMessage, string severit
126132
severityInstance = Severity.GetStatic<AndroidJavaObject>("WARNING");
127133
}
128134

129-
// Add unity exception to meta data
130-
var metaData = new AndroidJavaObject("com.bugsnag.android.MetaData");
131-
jvalue[] args = new jvalue[3] {
132-
new jvalue() { l = AndroidJNI.NewStringUTF("Unity") },
133-
new jvalue() { l = AndroidJNI.NewStringUTF("unityException") },
134-
new jvalue() { l = AndroidJNI.NewStringUTF("true") },
135-
};
136-
IntPtr addToTabMethodId = AndroidJNI.GetMethodID(metaData.GetRawClass(), "addToTab", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V");
137-
AndroidJNI.CallVoidMethod(metaData.GetRawObject(), addToTabMethodId, args);
138-
139-
if (!String.IsNullOrEmpty(type)) {
140-
// Add unity log level
141-
args = new jvalue[3] {
142-
new jvalue() { l = AndroidJNI.NewStringUTF("Unity") },
143-
new jvalue() { l = AndroidJNI.NewStringUTF("unityLogLevel") },
144-
new jvalue() { l = AndroidJNI.NewStringUTF(type) },
145-
};
146-
AndroidJNI.CallVoidMethod(metaData.GetRawObject(), addToTabMethodId, args);
147-
}
148-
149135
// Build the arguments
150-
args = new jvalue[6] {
136+
jvalue[] args = new jvalue[6] {
151137
new jvalue() { l = AndroidJNI.NewStringUTF(errorClass) },
152138
new jvalue() { l = AndroidJNI.NewStringUTF(errorMessage) },
153139
new jvalue() { l = AndroidJNI.NewStringUTF(context) },
154140
new jvalue() { l = (IntPtr)stackFrameArrayObject },
155141
new jvalue() { l = severityInstance.GetRawObject() },
156-
new jvalue() { l = metaData.GetRawObject() }
142+
new jvalue() { l = String.IsNullOrEmpty(type) ? IntPtr.Zero : AndroidJNI.NewStringUTF(type) }
157143
};
158144

159145
// Call Android's notify method
160-
IntPtr clientConstructorId = AndroidJNI.GetStaticMethodID(Bugsnag.GetRawClass(), "notify", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/StackTraceElement;Lcom/bugsnag/android/Severity;Lcom/bugsnag/android/MetaData;)V");
161-
if(warmup == false) AndroidJNI.CallStaticVoidMethod(Bugsnag.GetRawClass(), clientConstructorId, args);
146+
IntPtr clientConstructorId = AndroidJNI.GetStaticMethodID(BugsnagUnity.GetRawClass(), "notify", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/StackTraceElement;Lcom/bugsnag/android/Severity;Ljava/lang/String;)V");
147+
if(warmup == false) AndroidJNI.CallStaticVoidMethod(BugsnagUnity.GetRawClass(), clientConstructorId, args);
162148
}
163149
}
164150

@@ -428,7 +414,11 @@ private void InitInternal(string apiKey) {
428414
NativeBugsnag.AddToTab("Unity", "platform", Application.platform.ToString());
429415
NativeBugsnag.AddToTab("Unity", "osLanguage", Application.systemLanguage.ToString());
430416
#if UNITY_5_OR_NEWER
417+
#if UNITY_5_6_OR_NEWER
431418
NativeBugsnag.AddToTab("Unity", "bundleIdentifier", Application.identifier.ToString());
419+
#else
420+
NativeBugsnag.AddToTab("Unity", "bundleIdentifier", Application.bundleIdentifier.ToString());
421+
#endif
432422
NativeBugsnag.AddToTab("Unity", "version", Application.version.ToString());
433423
NativeBugsnag.AddToTab("Unity", "companyName", Application.companyName.ToString());
434424
NativeBugsnag.AddToTab("Unity", "productName", Application.productName.ToString());
@@ -529,7 +519,8 @@ void HandleLog (string logString, string stackTrace, LogType type) {
529519
errorClass = match.Groups["errorClass"].Value;
530520
errorMessage = match.Groups["message"].Value.Trim();
531521
} else {
532-
errorClass = logString;
522+
errorClass = "UnityLog" + type;
523+
errorMessage = logString;
533524
}
534525

535526
if (stackTrace == null || stackTrace == "") {

example/Assets/Standard Assets/Bugsnag/Editor/BugsnagPostProcess.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,6 @@ public static void OnPostProcessBuild(BuildTarget target, string path)
4747
var sbWeb = new StringBuilder ();
4848
foreach (var line in indexLines) {
4949
sbWeb.AppendLine (line);
50-
51-
// Add an extra line below the first script tag, linking to the js notifier
52-
if (line.Contains ("<script src=\"TemplateData/UnityProgress.js\"></script>")) {
53-
var extra = line.Replace ("TemplateData/UnityProgress.js", "//d2wy8f7a9ursnm.cloudfront.net/bugsnag-2.min.js");
54-
sbWeb.AppendLine (extra);
55-
}
5650
}
5751
File.WriteAllText(indexPath, sbWeb.ToString());
5852
return;
@@ -120,7 +114,7 @@ public static void OnPostProcessBuild(BuildTarget target, string path)
120114
"\t\t\t);\n" +
121115
"\t\t\trunOnlyForDeploymentPostprocessing = 0;\n" +
122116
"\t\t\tshellPath = \"/usr/bin/env ruby\";\n" +
123-
"\t\t\tshellScript = \"# bugsnag dsym upload script\\nfork do\\n Process.setsid\\n STDIN.reopen(\\\"/dev/null\\\")\\n STDOUT.reopen(\\\"/dev/null\\\", \\\"a\\\")\\n STDERR.reopen(\\\"/dev/null\\\", \\\"a\\\")\\n\\n require 'shellwords'\\n\\n Dir[\\\"#{ENV[\\\"DWARF_DSYM_FOLDER_PATH\\\"]}/*/Contents/Resources/DWARF/*\\\"].each do |dsym|\\n system(\\\"curl -F dsym=@#{Shellwords.escape(dsym)} -F projectRoot=#{Shellwords.escape(ENV[\\\"PROJECT_DIR\\\"])} https://upload.bugsnag.com/\\\")\\n end\\nend\";\n" +
117+
"\t\t\tshellScript = \"# bugsnag dsym upload script\\nfork do\\n Process.setsid\\n STDIN.reopen(\\\"/dev/null\\\")\\n STDOUT.reopen(\\\"/dev/null\\\", \\\"a\\\")\\n STDERR.reopen(\\\"/dev/null\\\", \\\"a\\\")\\n\\n require \\\"shellwords\\\"\\n\\n Dir[\\\"#{ENV[\\\"DWARF_DSYM_FOLDER_PATH\\\"]}/*/Contents/Resources/DWARF/*\\\"].each do |dsym|\\n system(\\\"curl -F dsym=@#{Shellwords.escape(dsym)} -F projectRoot=#{Shellwords.escape(ENV[\\\"PROJECT_DIR\\\"])} https://upload.bugsnag.com/\\\")\\n end\\nend\";\n" +
124118
"\t\t};\n"
125119
);
126120
} else if (needsBugsnagScript && line.Contains ("buildPhases = (")) {

0 commit comments

Comments
 (0)