diff --git a/Android/lib/arm64-v8a/libbacktrace-crashpad.so b/Android/lib/arm64-v8a/libbacktrace-crashpad.so deleted file mode 100644 index 4863697f..00000000 Binary files a/Android/lib/arm64-v8a/libbacktrace-crashpad.so and /dev/null differ diff --git a/Android/lib/arm64-v8a/libbacktrace-native.so b/Android/lib/arm64-v8a/libbacktrace-native.so new file mode 100644 index 00000000..d3feac38 Binary files /dev/null and b/Android/lib/arm64-v8a/libbacktrace-native.so differ diff --git a/Android/lib/arm64-v8a/libbacktrace-crashpad.so.meta b/Android/lib/arm64-v8a/libbacktrace-native.so.meta similarity index 94% rename from Android/lib/arm64-v8a/libbacktrace-crashpad.so.meta rename to Android/lib/arm64-v8a/libbacktrace-native.so.meta index c8322bdf..e5e54589 100644 --- a/Android/lib/arm64-v8a/libbacktrace-crashpad.so.meta +++ b/Android/lib/arm64-v8a/libbacktrace-native.so.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f042d68822623e74ead1ccb09ff4b56f +guid: 860fcaea5fc9d984983dd53a92ed7a64 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Android/lib/armeabi-v7a/libbacktrace-crashpad.so b/Android/lib/armeabi-v7a/libbacktrace-crashpad.so deleted file mode 100644 index 04837d96..00000000 Binary files a/Android/lib/armeabi-v7a/libbacktrace-crashpad.so and /dev/null differ diff --git a/Android/lib/armeabi-v7a/libbacktrace-native.so b/Android/lib/armeabi-v7a/libbacktrace-native.so new file mode 100644 index 00000000..089c9263 Binary files /dev/null and b/Android/lib/armeabi-v7a/libbacktrace-native.so differ diff --git a/Android/lib/armeabi-v7a/libbacktrace-crashpad.so.meta b/Android/lib/armeabi-v7a/libbacktrace-native.so.meta similarity index 94% rename from Android/lib/armeabi-v7a/libbacktrace-crashpad.so.meta rename to Android/lib/armeabi-v7a/libbacktrace-native.so.meta index bb3b2463..9b7c94d2 100644 --- a/Android/lib/armeabi-v7a/libbacktrace-crashpad.so.meta +++ b/Android/lib/armeabi-v7a/libbacktrace-native.so.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 52e73e8ed1538cd42a49a66d2cf5b263 +guid: 7a159ccd07ca0dc4a8df92d804d3b66b PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/Android/lib/x86/libbacktrace-crashpad.so b/Android/lib/x86/libbacktrace-crashpad.so deleted file mode 100644 index 91a73729..00000000 Binary files a/Android/lib/x86/libbacktrace-crashpad.so and /dev/null differ diff --git a/Android/lib/x86/libbacktrace-native.so b/Android/lib/x86/libbacktrace-native.so new file mode 100644 index 00000000..beffaba6 Binary files /dev/null and b/Android/lib/x86/libbacktrace-native.so differ diff --git a/Android/lib/x86/libbacktrace-crashpad.so.meta b/Android/lib/x86/libbacktrace-native.so.meta similarity index 88% rename from Android/lib/x86/libbacktrace-crashpad.so.meta rename to Android/lib/x86/libbacktrace-native.so.meta index c1eb6152..eab88ca0 100644 --- a/Android/lib/x86/libbacktrace-crashpad.so.meta +++ b/Android/lib/x86/libbacktrace-native.so.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 76ee1214244add04a948a4befc10a395 +guid: dd12b4b499a776b489a93e481b4b9e66 PluginImporter: externalObjects: {} serializedVersion: 2 @@ -25,4 +25,4 @@ PluginImporter: CPU: x86 userData: assetBundleName: - assetBundleVariant: \ No newline at end of file + assetBundleVariant: diff --git a/CHANGELOG.md b/CHANGELOG.md index 5aedbdcc..8e90a30a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Backtrace Unity Release Notes +## Version 3.2.0 +- Updated Android NDK libraries used by Unity plugin. + ## Version 3.1.2 - `BacktraceData` allows to edit list of environment variables collected by `BacktraceAnnotations` - `SourceCode` object description for PII purpose diff --git a/Runtime/Native/Android/NativeClient.cs b/Runtime/Native/Android/NativeClient.cs index 9618754e..0e84d4d5 100644 --- a/Runtime/Native/Android/NativeClient.cs +++ b/Runtime/Native/Android/NativeClient.cs @@ -14,11 +14,11 @@ namespace Backtrace.Unity.Runtime.Native.Android /// internal class NativeClient : INativeClient { - [DllImport("backtrace-crashpad")] - private static extern bool InitializeCrashpad(IntPtr submissionUrl, IntPtr databasePath, IntPtr handlerPath, IntPtr keys, IntPtr values); + [DllImport("backtrace-native")] + private static extern bool Initialize(IntPtr submissionUrl, IntPtr databasePath, IntPtr handlerPath, IntPtr keys, IntPtr values); - [DllImport("backtrace-crashpad")] - private static extern bool AddCrashpadAttribute(IntPtr key, IntPtr value); + [DllImport("backtrace-native")] + private static extern bool AddAttribute(IntPtr key, IntPtr value); private readonly BacktraceConfiguration _configuration; // Android native interface paths @@ -29,7 +29,12 @@ internal class NativeClient : INativeClient /// /// Determine if android integration should be enabled /// - private bool _enabled = Application.platform == RuntimePlatform.Android; + private bool _enabled = +#if UNITY_ANDROID && !UNITY_EDITOR + true; +#else + false; +#endif /// /// Anr watcher object @@ -37,7 +42,7 @@ internal class NativeClient : INativeClient private AndroidJavaObject _anrWatcher; private bool _captureNativeCrashes = false; - private bool _handlerANR = false; + private readonly bool _handlerANR = false; public NativeClient(string gameObjectName, BacktraceConfiguration configuration) { _configuration = configuration; @@ -48,10 +53,9 @@ public NativeClient(string gameObjectName, BacktraceConfiguration configuration) #if UNITY_ANDROID _captureNativeCrashes = _configuration.CaptureNativeCrashes; _handlerANR = _configuration.HandleANR; -#endif HandleAnr(gameObjectName, "OnAnrDetected"); HandleNativeCrashes(); - +#endif } /// @@ -87,12 +91,15 @@ private void HandleNativeCrashes() } // get default built-in Backtrace-Unity attributes var backtraceAttributes = new BacktraceAttributes(null, null, true); + // add exception type to crashes handled by crashpad - all exception handled by crashpad + // will be game crashes + backtraceAttributes.Attributes["exception.type"] = "Crash"; var minidumpUrl = new BacktraceCredentials(_configuration.GetValidServerUrl()).GetMinidumpSubmissionUrl().ToString(); // reassign to captureNativeCrashes // to avoid doing anything on crashpad binary, when crashpad // isn't available - _captureNativeCrashes = InitializeCrashpad( + _captureNativeCrashes = Initialize( AndroidJNI.NewStringUTF(minidumpUrl), AndroidJNI.NewStringUTF(_configuration.CrashpadDatabasePath), AndroidJNI.NewStringUTF(crashpadHandlerPath), @@ -179,7 +186,7 @@ public void SetAttribute(string key, string value) value = string.Empty; } - AddCrashpadAttribute( + AddAttribute( AndroidJNI.NewStringUTF(key), AndroidJNI.NewStringUTF(value)); } diff --git a/Runtime/Services/BacktraceApi.cs b/Runtime/Services/BacktraceApi.cs index c2863488..764cd58d 100644 --- a/Runtime/Services/BacktraceApi.cs +++ b/Runtime/Services/BacktraceApi.cs @@ -110,7 +110,7 @@ public IEnumerator SendMinidump(string minidumpPath, IEnumerable attachm foreach (var file in attachments) { - if (File.Exists(file) && new FileInfo(file).Length > 10000000) + if (File.Exists(file) && new FileInfo(file).Length < 10000000) { formData.Add(new MultipartFormFileSection( string.Format("attachment__{0}", Path.GetFileName(file)),