Spracherkennung für: .flags vermutete Sprache: Abap {ABAP[110] Delphi[80] CS[72]} [Methode: maximale Elemente, drei Dimensionen]
# Preserve
line number information
for debugging stack traces.
-keepattributes SourceFile,LineNumberTable
# Annotations are implemented
as attributes, so we have
to explicitly keep them.
# Keep all runtime-visible annotations
like RuntimeVisibleParameterAnnotations
#
and RuntimeVisibleTypeAnnotations,
as well
as associated defaults.
-keepattributes RuntimeVisible
*Annotation*,AnnotationDefault
# With R8 full mode, certain attributes are only kept
when matched with an
# explicit keep rule
for that target, even with a global -keepattributes rule.
#
As such, we can
add the global keep rule here with minimal cost
while
# simplifying incremental development.
-keepattributes Exceptions
#
For native
methods, see
http://proguard.sourceforge.net/manual/examples.html#native
-keepclasseswithmembernames,includedescriptorclasses
class * {
native <
methods>;
}
#
class$
methods are inserted
by some compilers
to implement .
class construct,
# see
http://proguard.sourceforge.net/manual/examples.html#library
-keepclassmembernames
class * {
java.lang.
Class class$(java.lang.
String);
java.lang.
Class class$(java.lang.
String, boolean);
}
# Keep serializable classes
and necessary members
for serializable classes
# Originally copied
from the ProGuard manual
at http://proguard.sourceforge.net,
# with the following modification(s):
# - Exclude synthetics
from the kept fields.
-keepnames
class * implements java.io.Serializable
-keepclassmembers
class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient !synthetic <fields>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.
Object writeReplace();
java.lang.
Object readResolve();
}
# Keep all Javascript API
methods
-keepclassmembers
class * {
@android.webkit.JavascriptInterface <
methods>;
}
# Keep Throwable
's constructor that takes a String argument.
-keepclassmembers
class * extends java.lang.Throwable {
<init>(java.lang.
String);
}
# Please specify classes
to be kept explicitly
in your package
's configuration.
# -keep
class * extends android.app.Activity
# -keep
class * extends android.view.View
# -keep
class * extends android.app.Service
# -keep
class * extends android.content.BroadcastReceiver
# -keep
class * extends android.content.ContentProvider
# -keep
class * extends android.preference.Preference
# -keep
class * extends android.app.BackupAgent
# Parcelable CREATORs must be kept
for Parcelable functionality
-keepclassmembers
class * implements android.os.Parcelable {
public static final
** CREATOR;
}
# The support library contains references
to newer platform versions.
# Don
't warn about those in case this app is linking against an older
# platform version. We know about them,
and they are safe.
# See proguard-android.txt
in the SDK package.
#
#
DO NOT USE THIS: We figured it
's dangerous to blindly ignore all support library warnings.
# ProGuard may strip members
of subclass
of unknown super classes,
in case an app
is linking agai
nst
# LOCAL_SDK_VERSION lower than the support library's LOCAL_SDK_VERSION.
# See bug/20658265.
# -dontwarn android.support.**
# From https://github.com/google/guava/wiki/UsingProGuardWithGuava
# Striped64, LittleEndianByteArray, UnsignedBytes, AbstractFuture
-dontwarn sun.misc.Unsafe
# Futures.getChecked (which often won't work with Proguard anyway) uses this. It
# has a fallback, but again, don't use Futures.getChecked on Android regardless.
-dontwarn java.lang.ClassValue
# Ignore missing annotation references for various support libraries.
# While this is not ideal, it should be relatively safe given that
# 1) runtime-visible annotations will still be kept, and 2) compile-time
# annotations are stripped by R8 anyway.
# Note: The ** prefix is used to accommodate jarjar repackaging.
# TODO(b/242088131): Remove these exemptions after resolving transitive libs
# dependencies that are provided to R8.
-dontwarn **android**.annotation*.**
-dontwarn **com.google.errorprone.annotations.**
-dontwarn javax.annotation.**
-dontwarn org.checkerframework.**
-dontwarn org.jetbrains.annotations.**
# Less spammy.
-dontnote
# The lite proto runtime uses reflection to access fields based on the names in
# the schema, keep all the fields. Wildcard is used to apply the rule to classes
# that have been renamed with jarjar.
-keepclassmembers class * extends **.protobuf.MessageLite { <fields>; }