Roboguice 3 的 Proguard 问题
Proguard issues with Roboguice 3
我正在尝试导入 Roboguice,但在导入时出现了一堆 Proguard 错误。
我查看了其他问题,但 none 的答案似乎对我有用。我正在尝试导入 Roboguice 3 以使用看起来需要的 Coinbase Android SDK。它似乎在寻找我不使用的 sherlock 库。
我的gradle错误很长所以可以找到here。
我的 Proguard 是:
-dontobfuscate
-dontoptimize
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-dump ../bin/class_files.txt
-printseeds ../bin/seeds.txt
-printusage ../bin/unused.txt
-printmapping ../bin/mapping.txt
# The -optimizations option disables some arithmetic simplifications that Dalvik 1.0 and 1.5 can't handle.
-optimizations !code/simplification/arithmetic
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep class com.google.inject.Binder
-keepclassmembers class * {
@com.google.inject.Inject <init>(...);
}
# There's no way to keep all @Observes methods, so use the On*Event convention to identify event handlers
-keepclassmembers class * {
void *(**On*Event);
}
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keep public class roboguice.**
-dontwarn javax.**
-dontwarn com.actionbarsherlock.internal.**
-dontwarn robojuice.activity.**
要消除最后的警告,以便完成编译:
-dontwarn roboguice.**
-dontwarn org.roboguice.**
但是,这仅在它确实不需要该库(以及它在 Warning:
行中提到的另一个 类)并且不尝试加载它时才有效。如果它确实在运行时尝试,它将崩溃。
一如既往,测试所有代码路径,因为在运行时出现依赖项注入错误很常见,尤其是在使用 ProGuard 时。
我正在尝试导入 Roboguice,但在导入时出现了一堆 Proguard 错误。
我查看了其他问题,但 none 的答案似乎对我有用。我正在尝试导入 Roboguice 3 以使用看起来需要的 Coinbase Android SDK。它似乎在寻找我不使用的 sherlock 库。
我的gradle错误很长所以可以找到here。
我的 Proguard 是:
-dontobfuscate
-dontoptimize
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-dump ../bin/class_files.txt
-printseeds ../bin/seeds.txt
-printusage ../bin/unused.txt
-printmapping ../bin/mapping.txt
# The -optimizations option disables some arithmetic simplifications that Dalvik 1.0 and 1.5 can't handle.
-optimizations !code/simplification/arithmetic
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep class com.google.inject.Binder
-keepclassmembers class * {
@com.google.inject.Inject <init>(...);
}
# There's no way to keep all @Observes methods, so use the On*Event convention to identify event handlers
-keepclassmembers class * {
void *(**On*Event);
}
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keep public class roboguice.**
-dontwarn javax.**
-dontwarn com.actionbarsherlock.internal.**
-dontwarn robojuice.activity.**
要消除最后的警告,以便完成编译:
-dontwarn roboguice.**
-dontwarn org.roboguice.**
但是,这仅在它确实不需要该库(以及它在 Warning:
行中提到的另一个 类)并且不尝试加载它时才有效。如果它确实在运行时尝试,它将崩溃。
一如既往,测试所有代码路径,因为在运行时出现依赖项注入错误很常见,尤其是在使用 ProGuard 时。