我正在为我的Android项目设置ProGuard.我的项目也使用GSON.
我已经研究了与GSON和Android兼容的ProGuard配置,并且遇到了google-gson提供的这个示例https://code.google.com/p/google-gson/source/browse/trunk/examples/android-proguard- example/proguard.cfg.
ProGuard配置复制如下:
##---------------Begin: proguard configuration common for all Android apps ----------
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-dump class_files.txt
-printseeds seeds.txt
-printusage unused.txt
-printmapping mapping.txt
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-allowaccessmodification
-keepattributes *Annotation*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-repackageclasses ''
-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 public class * extends android.app.backup.BackupAgentHelper
-keep public class …Run Code Online (Sandbox Code Playgroud) 我长期坚持这个问题.我曾经搜索过这个问题,但没有一个解决方案有效.
结构体:
public interface GenericDAO<T extends Serializable, ID extends Serializable>
@Repository
public class AbstractGenericDAO<T extends Serializable, ID extends Serializable>
implements GenericDAO<T, ID> {
private Class<T> persistentClass;
@Autowired
private SessionFactory sessionFactory;
static Logger LOGGER = Logger.getLogger(AbstractGenericDAO.class);
@SuppressWarnings("unchecked")
public AbstractGenericDAO() {
this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
/**
* @param entity
* @return T
* @throws DBException
*/
@SuppressWarnings("unchecked")
public T saveEntity(T entity) throws DBException {
return saveEntity(entity, false);
}
/**
* @param entity
* @param explicitFlush
* @return T
* @throws …Run Code Online (Sandbox Code Playgroud) 我正在对 Android 应用程序实施混淆规则。当我编译该 apk 时,改造类仍然没有改变。请看一下我的 proguard 文件,并请指导我哪里缺少规则。
-keep public class org.slf4j.** { *; }
-keep public class ch.qos.** { *; }
-keep public class org.apache.** { *; }
-keep class com.ibm.hrl.datacapArfl.ArActivity { *; }
-keep class com.ibm.ecm.capture.** { *; }
-keep class com.googlecode.tesseract.android.** { *; }
-keep class com.fiberlink.** { *; }
-keep class com.ibm.androidsampleapplication.model.**{*;}
-keep class org.xmlpull.v1.** { *; }
-keep class com.android.volley.** { *; }
-keep class org.apache.commons.logging.**
-keepattributes *Annotation*
-dontwarn org.apache.**
-dontwarn com.squareup.picasso.**
-dontwarn butterknife.internal.**
-dontwarn org.apache.** …Run Code Online (Sandbox Code Playgroud)