diff --git a/CHANGELOG.md b/CHANGELOG.md
index 867405155..8a3240fc5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@
- Add setting that allows switching between the project and user directories for the internal Sentry database location on Windows/Linux ([#616](https://github.com/getsentry/sentry-unreal/pull/616))
- Add non-ASCII characters support for user messages ([#624](https://github.com/getsentry/sentry-unreal/pull/624))
+- Upgrade Android gradle plugin from v2.1.5 to v4.11.0 ([#633](https://github.com/getsentry/sentry-unreal/pull/633))
- Add API to allow users to trace their distributed system and connect in-game with backend errors ([#631](https://github.com/getsentry/sentry-unreal/pull/631))
- Allow overriding `UploadSymbolsAutomatically` via environment variable `SENTRY_UPLOAD_SYMBOLS_AUTOMATICALLY` ([#636](https://github.com/getsentry/sentry-unreal/pull/636))
diff --git a/plugin-dev/Config/FilterPlugin.ini b/plugin-dev/Config/FilterPlugin.ini
index 3f8d729bf..3980bb1b9 100644
--- a/plugin-dev/Config/FilterPlugin.ini
+++ b/plugin-dev/Config/FilterPlugin.ini
@@ -7,10 +7,5 @@
; /Extras/...
; /Binaries/ThirdParty/*.dll
/Scripts/*
-/LinuxIntermediate/Build/Linux/UnrealEditor/Inc/Sentry/UHT/*
-/LinuxIntermediate/Build/Linux/UnrealGame/Development/Sentry/*
-/LinuxIntermediate/Build/Linux/UnrealGame/Inc/Sentry/UHT/*
-/LinuxIntermediate/Build/Linux/UnrealGame/Shipping/Sentry/*
-/LinuxIntermediate/Build/Linux/x64/UnrealGame/Development/Sentry/*
-/LinuxIntermediate/Build/Linux/x64/UnrealGame/Shipping/Sentry/*
+/Gradle/*
/sentry-cli.properties
\ No newline at end of file
diff --git a/plugin-dev/Gradle/gradle-wrapper.properties b/plugin-dev/Gradle/gradle-wrapper.properties
new file mode 100644
index 000000000..3c472b99c
--- /dev/null
+++ b/plugin-dev/Gradle/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
diff --git a/plugin-dev/Source/Sentry/Private/SentrySettings.cpp b/plugin-dev/Source/Sentry/Private/SentrySettings.cpp
index b5f654354..10f1a715d 100644
--- a/plugin-dev/Source/Sentry/Private/SentrySettings.cpp
+++ b/plugin-dev/Source/Sentry/Private/SentrySettings.cpp
@@ -38,6 +38,7 @@ USentrySettings::USentrySettings(const FObjectInitializer& ObjectInitializer)
, UploadSymbolsAutomatically(false)
, IncludeSources(false)
, DiagnosticLevel(ESentryCliLogLevel::Info)
+ , UseLegacyGradlePlugin(false)
, CrashReporterUrl()
, bIsDirty(false)
{
@@ -66,6 +67,7 @@ void USentrySettings::PostEditChangeProperty(FPropertyChangedEvent& PropertyChan
PropertyChangedEvent.Property->GetFName() == GET_MEMBER_NAME_CHECKED(USentrySettings, OrgName) ||
PropertyChangedEvent.Property->GetFName() == GET_MEMBER_NAME_CHECKED(USentrySettings, AuthToken) ||
PropertyChangedEvent.Property->GetFName() == GET_MEMBER_NAME_CHECKED(USentrySettings, IncludeSources) ||
+ PropertyChangedEvent.Property->GetFName() == GET_MEMBER_NAME_CHECKED(USentrySettings, UseLegacyGradlePlugin) ||
PropertyChangedEvent.Property->GetFName() == GET_MEMBER_NAME_CHECKED(USentrySettings, DiagnosticLevel) ||
PropertyChangedEvent.Property->GetFName() == GET_MEMBER_NAME_CHECKED(USentrySettings, CrashReporterUrl))
{
diff --git a/plugin-dev/Source/Sentry/Public/SentrySettings.h b/plugin-dev/Source/Sentry/Public/SentrySettings.h
index 875142533..9dc921e3a 100644
--- a/plugin-dev/Source/Sentry/Public/SentrySettings.h
+++ b/plugin-dev/Source/Sentry/Public/SentrySettings.h
@@ -364,6 +364,11 @@ class SENTRY_API USentrySettings : public UObject
Meta = (DisplayName = "Diagnostic Level", ToolTip = "Logs verbosity level during symbol uploading.", EditCondition = "UploadSymbolsAutomatically"))
ESentryCliLogLevel DiagnosticLevel;
+ UPROPERTY(Config, EditAnywhere, Category = "Debug Symbols",
+ Meta = (DisplayName = "Use legacy Sentry Gradle plugin (for Android only)", ToolTip = "Flag indicating whether to use legacy Sentry Gradle plugin for debug symbol upload. No engine's Gradle version bump is required if enabled. This can be used as a fallback if the newer Gradle 7.5 causing compatibility issues with other third-party plugins.",
+ EditCondition = "UploadSymbolsAutomatically"))
+ bool UseLegacyGradlePlugin;
+
UPROPERTY(Config, EditAnywhere, Category = "Crash Reporter",
Meta = (DisplayName = "Crash Reporter Endpoint", ToolTip = "Endpoint that Unreal Engine Crah Reporter should use in order to upload crash data to Sentry."))
FString CrashReporterUrl;
diff --git a/plugin-dev/Source/Sentry/Sentry_Android_UPL.xml b/plugin-dev/Source/Sentry/Sentry_Android_UPL.xml
index 6f26370fd..af04dc1df 100644
--- a/plugin-dev/Source/Sentry/Sentry_Android_UPL.xml
+++ b/plugin-dev/Source/Sentry/Sentry_Android_UPL.xml
@@ -5,6 +5,7 @@
+
@@ -34,6 +35,12 @@
+
+
+
+
+
+
@@ -70,6 +77,17 @@
uploadNativeSymbols = true
}
+
+
+
+ sentry {
+ autoInstallation {
+ enabled = false
+ }
+ }
+
+
+
@@ -78,7 +96,7 @@
}
-
+
@@ -134,22 +152,30 @@
-
-
- dependencies {
- classpath 'com.android.tools.build:gradle:3.5.4'
- }
-
-
-
-
- dependencies {
- classpath 'io.sentry:sentry-android-gradle-plugin:2.1.5'
- }
-
+
+
+
+
+ dependencies {
+ classpath 'com.android.tools.build:gradle:3.5.4'
+ classpath 'io.sentry:sentry-android-gradle-plugin:2.1.5'
+ }
+
+
+
+
+
+
+ dependencies {
+ classpath 'com.android.tools.build:gradle:7.4.2'
+ classpath 'io.sentry:sentry-android-gradle-plugin:4.11.0'
+ }
+
+
+
diff --git a/scripts/packaging/package-github.snapshot b/scripts/packaging/package-github.snapshot
index 89b401622..b9d2d6aab 100644
--- a/scripts/packaging/package-github.snapshot
+++ b/scripts/packaging/package-github.snapshot
@@ -1,6 +1,8 @@
CHANGELOG.md
Config/
Config/FilterPlugin.ini
+Gradle/
+Gradle/gradle-wrapper.properties
LICENSE
Resources/
Resources/Icon128.png
diff --git a/scripts/packaging/package-marketplace.snapshot b/scripts/packaging/package-marketplace.snapshot
index 54f21b230..67073c731 100644
--- a/scripts/packaging/package-marketplace.snapshot
+++ b/scripts/packaging/package-marketplace.snapshot
@@ -1,6 +1,8 @@
CHANGELOG.md
Config/
Config/FilterPlugin.ini
+Gradle/
+Gradle/gradle-wrapper.properties
LICENSE
Resources/
Resources/Icon128.png