Sentry upgrade

This commit is contained in:
Hans Mackowiak
2022-03-21 05:11:36 +00:00
parent 678d0a0f85
commit c8e5a02487
30 changed files with 372 additions and 206 deletions

View File

@@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="forge.app"
android:versionCode="1"
android:versionName="1.6.47" > <!-- versionName should be updated and it's used for Sentry releases tag -->
android:versionName="1.6.49" > <!-- versionName should be updated and it's used for Sentry releases tag -->
<uses-sdk
android:minSdkVersion="19"
@@ -30,5 +30,17 @@
</intent-filter>
</activity>
<activity android:name=".Exiter" android:theme="@android:style/Theme.NoDisplay"/>
<meta-data android:name="io.sentry.dsn" android:value="https://a0b8dbad9b8a49cfa51bf65d462e8dae:b3f27d7461224cb8836eb5c6050c666c@sentry.cardforge.org/2?buffer.enabled=false" />
<!-- manually added -->
<provider
android:name="io.sentry.android.core.SentryInitProvider"
android:authorities=".SentryInitProvider"
android:exported="false"/>
<provider
android:name="io.sentry.android.core.SentryPerformanceProvider"
android:authorities=".SentryPerformanceProvider"
android:initOrder="200"
android:exported="false"/>
</application>
</manifest>

View File

@@ -6,7 +6,7 @@
<packaging.type>jar</packaging.type>
<build.min.memory>-Xms1024m</build.min.memory>
<build.max.memory>-Xmx1536m</build.max.memory>
<alpha-version>1.6.47.001</alpha-version>
<alpha-version>1.6.49.001</alpha-version>
<sign.keystore>keystore</sign.keystore>
<sign.alias>alias</sign.alias>
<sign.storepass>storepass</sign.storepass>
@@ -45,7 +45,6 @@
</resources>
<finalName>forge-android-${alpha-version}</finalName>
</build>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
@@ -104,7 +103,69 @@
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-android</artifactId>
<version>1.7.30</version>
<version>5.7.0</version>
<type>aar</type>
<exclusions>
<exclusion>
<groupId>io.sentry</groupId>
<artifactId>sentry-android-core</artifactId>
</exclusion>
<exclusion>
<groupId>io.sentry</groupId>
<artifactId>sentry-android-ndk</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- manual sentry-android dependencies because of Gradle Bug -->
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-android-core</artifactId>
<version>5.7.0</version>
<type>aar</type>
<exclusions>
<exclusion>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-process</artifactId>
</exclusion>
<exclusion>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-common-java8</artifactId>
</exclusion>
<exclusion>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-android-ndk</artifactId>
<version>5.7.0</version>
<type>aar</type>
<exclusions>
<exclusion>
<groupId>io.sentry</groupId>
<artifactId>sentry-android-core</artifactId>
</exclusion>
<exclusion>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-process</artifactId>
</exclusion>
<exclusion>
<groupId>androidx.lifecycle</groupId>
<artifactId>lifecycle-common-java8</artifactId>
</exclusion>
<exclusion>
<groupId>androidx.core</groupId>
<artifactId>core</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- runtime dependency of sentry -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
</dependencies>
@@ -119,7 +180,19 @@
<plugin>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>4.2.1</version>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>6.2.2</version>
</dependency>
</dependencies>
<version>4.6.0</version>
<extensions>true</extensions>
<configuration>
<sign>
@@ -139,11 +212,21 @@
<config>${project.basedir}/proguard.cfg</config>
</proguard>
<release>true</release>
<dex>
<dexCompiler>d8</dexCompiler>
<d8>
<minApi>26</minApi>
<jvmArguments>
<argument>${build.min.memory}</argument>
<argument>${build.max.memory}</argument>
</jvmArguments>
</d8>
<dex>
<multi-dex>true</multi-dex>
<jvmArguments>
<argument>${build.min.memory}</argument>
<argument>${build.max.memory}</argument>
</jvmArguments>
<dexArguments>--min-sdk-version=26</dexArguments>
</dex>
</configuration>
</plugin>
@@ -160,7 +243,19 @@
<plugin>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>4.2.1</version>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>6.2.2</version>
</dependency>
</dependencies>
<version>4.6.0</version>
<extensions>true</extensions>
<configuration>
<sign>
@@ -183,11 +278,21 @@
<config>${project.basedir}/proguard.cfg</config>
</proguard>
<release>true</release>
<dex>
<dexCompiler>d8</dexCompiler>
<d8>
<minApi>26</minApi>
<jvmArguments>
<argument>${build.min.memory}</argument>
<argument>${build.max.memory}</argument>
</jvmArguments>
</d8>
<dex>
<multi-dex>true</multi-dex>
<jvmArguments>
<argument>${build.min.memory}</argument>
<argument>${build.max.memory}</argument>
</jvmArguments>
<dexArguments>--min-sdk-version=26</dexArguments>
</dex>
</configuration>
</plugin>
@@ -238,7 +343,19 @@
<plugin>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>4.2.1</version>
<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>6.2.2</version>
</dependency>
</dependencies>
<version>4.6.0</version>
<inherited>true</inherited>
<configuration>
<sign>

View File

@@ -6,9 +6,13 @@
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
-android
## Uncomment the line below and set it to the location of rt.jar in JDK if the Proguard step fails to find the libraries
## and spits out a thousand-something Class Not Found errors
##-libraryjars /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar
##-libraryjars <java.home>/jmods/java.base.jmod(!**.jar;!module-info.class)
##-libraryjars <java.home>/jmods/jdk.xml.dom.jmod(!**.jar;!module-info.class)
-dontwarn afu.org.checkerframework.**
-dontwarn io.netty.**
@@ -16,32 +20,55 @@
-dontwarn com.thoughtworks.xstream.**
-dontwarn com.badlogic.gdx.**
-dontwarn org.apache.commons.**
-dontwarn org.apache.http.**
-dontwarn com.google.guava.**
-dontwarn com.google.common.**
-dontwarn com.google.gson.**
-dontwarn org.checkerframework.**
-dontwarn org.xmlpull.**
-dontwarn org.apache.log4j.**
-dontwarn org.fourthline.cling.**
-dontwarn org.seamless.http.**
-dontwarn org.seamless.xhtml.**
-dontwarn org.seamless.xml.**
-dontwarn org.seamless.util.**
-dontwarn org.seamless.swing.**
-dontwarn java.lang.management.**
-dontwarn java.awt.**
-dontwarn java.util.**
-dontwarn java.lang.**
-dontwarn java.net.**
-dontwarn java.nio.**
-dontwarn java.io.**
-dontwarn org.slf4j.**
-dontwarn ch.qos.logback.**
-dontwarn javax.**
-dontwarn org.apache.logging.log4j.**
-dontwarn module-info
-dontwarn io.sentry.logback.*
-dontwarn io.sentry.**
-dontwarn net.jpountz.**
## Support library
-dontwarn android.support.**
-dontwarn android.**
-dontwarn androidx.**
-dontwarn forge.**
-keep class forge.** { *; }
-keep class com.thoughtworks.xstream.** { *; }
-keep class org.apache.commons.lang3.** { *; }
-keep class com.google.guava.** { *; }
-keep class com.google.common.** { *; }
-keep class com.google.gson.GsonBuilder
-keep class io.sentry.event.Event { *; }
-keep class io.sentry.android.core.SentryAndroidOptions
-keep class io.sentry.android.core.SentryAndroid
-keep class io.sentry.android.core.SentryInitProvider
-keep class io.sentry.android.core.SentryPerformanceProvider
-keep class io.sentry.android.ndk.SentryNdk
-keep class io.sentry.Sentry
-keep class io.netty.util.internal.logging.** { *; }
-keep class net.jpountz.** { *; }
-keep class com.ray3k.** { *; }

View File

@@ -53,9 +53,9 @@ import forge.localinstance.properties.ForgePreferences;
import forge.model.FModel;
import forge.util.FileUtil;
import forge.util.ThreadUtil;
import io.sentry.Breadcrumb;
import io.sentry.Sentry;
import io.sentry.android.AndroidSentryClientFactory;
import io.sentry.event.BreadcrumbBuilder;
//import io.sentry.android.core.SentryAndroid;
public class Main extends AndroidApplication {
AndroidAdapter Gadapter;
@@ -63,10 +63,10 @@ public class Main extends AndroidApplication {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Context ctx = this.getApplicationContext();
String sentryDsn = "https://a0b8dbad9b8a49cfa51bf65d462e8dae:b3f27d7461224cb8836eb5c6050c666c@sentry.cardforge.org/2?buffer.enabled=false";
//init Sentry
Sentry.init(sentryDsn, new AndroidSentryClientFactory(ctx));
//SentryAndroid.init(this);
//get total device RAM in mb
ActivityManager actManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ActivityManager.MemoryInfo memInfo = new ActivityManager.MemoryInfo();
@@ -217,9 +217,7 @@ public class Main extends AndroidApplication {
//fake init for error message
//set current orientation
String message = getDeviceName()+"\n"+"Android "+AndroidRelease+"\n"+"RAM "+ totalRAM+"MB" +"\n"+"LibGDX "+ Version.VERSION+"\n"+"Can't access external storage";
Sentry.getContext().recordBreadcrumb(
new BreadcrumbBuilder().setMessage(message).build()
);
Sentry.addBreadcrumb(new Breadcrumb(message));
Main.this.setRequestedOrientation(Main.this.getResources().getConfiguration().orientation);
initialize(Forge.getApp(new AndroidClipboard(), adapter, "", false, true, totalRAM, isTabletDevice, AndroidAPI, AndroidRelease, getDeviceName()));
displayMessage(adapter, true, message);
@@ -232,9 +230,7 @@ public class Main extends AndroidApplication {
//fake init for error message
//set current orientation
String message = getDeviceName()+"\n"+"Android "+AndroidRelease+"\n"+"RAM "+ totalRAM+"MB" +"\n"+"LibGDX "+ Version.VERSION+"\n"+"Can't access external storage\nPath: " + assetsDir;
Sentry.getContext().recordBreadcrumb(
new BreadcrumbBuilder().setMessage(message).build()
);
Sentry.addBreadcrumb(new Breadcrumb(message));
Main.this.setRequestedOrientation(Main.this.getResources().getConfiguration().orientation);
initialize(Forge.getApp(new AndroidClipboard(), adapter, "", false, true, totalRAM, isTabletDevice, AndroidAPI, AndroidRelease, getDeviceName()));
displayMessage(adapter, true, message);