46 lines
2.6 KiB
Prolog
46 lines
2.6 KiB
Prolog
# ReVoltVPN ProGuard / R8 Rules
|
|
# ==============================================================================
|
|
# These rules prevent R8 from stripping classes and methods that are accessed
|
|
# via JNI (Java Native Interface) or reflection, which would cause
|
|
# UnsatisfiedLinkError / ClassNotFoundException at runtime.
|
|
|
|
# ── VLESS / Xray Native Backend (flutter_vless) ───────────────────────────────
|
|
# The flutter_vless plugin embeds Xray core via JNI. Keep all JNI entry points.
|
|
-keep class com.github.tfox.flutter_vless.** { *; }
|
|
-keep class libv2ray.** { *; }
|
|
-keep class xray.** { *; }
|
|
|
|
# ── Flutter / Platform Channels ───────────────────────────────────────────────
|
|
# io.flutter.** already includes embedding and plugin subpackages.
|
|
-keep class io.flutter.** { *; }
|
|
|
|
# ── Google Mobile Ads (AdMob) ─────────────────────────────────────────────────
|
|
-keep class com.google.android.gms.ads.** { *; }
|
|
-dontwarn com.google.android.gms.ads.**
|
|
|
|
# ── General Android / Kotlin ──────────────────────────────────────────────────
|
|
-keepattributes *Annotation*
|
|
-keepattributes SourceFile,LineNumberTable
|
|
-keep class kotlin.Metadata { *; }
|
|
|
|
# Strip debug logging in release builds
|
|
-assumenosideeffects class android.util.Log {
|
|
public static boolean isLoggable(java.lang.String, int);
|
|
public static int v(...);
|
|
public static int d(...);
|
|
public static int i(...);
|
|
}
|
|
|
|
# ── Google Play Core (Missing R8 Rules) ───────────────────────────────────────
|
|
-dontwarn com.google.android.play.core.splitcompat.SplitCompatApplication
|
|
-dontwarn com.google.android.play.core.splitinstall.SplitInstallException
|
|
-dontwarn com.google.android.play.core.splitinstall.SplitInstallManager
|
|
-dontwarn com.google.android.play.core.splitinstall.SplitInstallManagerFactory
|
|
-dontwarn com.google.android.play.core.splitinstall.SplitInstallRequest$Builder
|
|
-dontwarn com.google.android.play.core.splitinstall.SplitInstallRequest
|
|
-dontwarn com.google.android.play.core.splitinstall.SplitInstallSessionState
|
|
-dontwarn com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener
|
|
-dontwarn com.google.android.play.core.tasks.OnFailureListener
|
|
-dontwarn com.google.android.play.core.tasks.OnSuccessListener
|
|
-dontwarn com.google.android.play.core.tasks.Task
|