Proguard avec OrmLite sur Android
Comment dois-je utiliser proguard avec ormlite bibliothèque sur Android?
Essayer ceci:
-keep class com.j256.**
-keepclassmembers class com.j256.**
-keep enum com.j256.**
-keepclassmembers enum com.j256.**
-keep interface com.j256.**
-keepclassmembers interface com.j256.**
Mais j'obtiens:
03-23 20:23:54.518: E/AndroidRuntime(3032): java.lang.RuntimeException: Impossible de démarrer l'activité ComponentInfo{cz.eman.android.cepro/cz.eman.android.cepro.de l'activité.StationsOverviewActivity}: java.lang.IllegalStateException: impossible de trouver le constructeur qui prend un argument Contexte de la classe helper class ko
J'ai aussi essayé d'ajouter ceci:
-keepclassmembers class * { public <init>(android.content.Context); }
Mais je reçois un autre classmembers erreurs.
- A ma réponse aider les gars? Si oui, alors veuillez l'accepter. Si non, veuillez fournir votre propre réponse.
- merci de poster la réponse si vous avez trouvé ou la marque, les réponses correctes, Il peut aider les autres à trouver la réponse
- comment avez-vous résoudre ce terme?
- Je l'ai corrigé en faisant tous les ci-dessous (les réponses de Gris et allemand), et après que j'ai également eu à ajouter tous mes base de données des objets de contenu (avec un ou plus @DatabaseField) dans mon proguard config comme ceci: -garder la classe com.myapp.de modèle.** -keepclassmembers classe com.myapp.de modèle.** { *; }
- frank u sauvé ma lifeeeee ...
Vous devez vous connecter pour publier un commentaire.
Merci beaucoup pour les messages comme celui-ci qui nous aident à avancer étape par étape.
Je suis venu avec d'autres solution après j'ai essayé la dernière sans succès:
J'espère que cela peut aider quelqu'un.
Je n'ai pas la solution, mais ici, êtes un couple de références pour les aider:
Vous est peut-être manquant:
et/ou
-keepclassmembers class * extends com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper { public <init>(android.content.Context); }
Accepté la réponse ne l'est pas assez pour mon cas, j'ai donc amélioré, et c'est ce que j'ai:
-dontwarn com.j256.ormlite.android.**
-dontwarn com.j256.ormlite.logger.**
-dontwarn com.j256.ormlite.misc.**
Un petit plus à la configuration ci-dessus - si vous essayez de sérialiser /désérialiser Joda est
DateTime
des objets via ORMLite, vous avez probablement besoin de ceci: les...depuis ORMLite de
DateTimeType
fait tout via la réflexion.Dans addittion à défaut nécessaire pour la réflexion:
J'avais besoin de garder toutes mes classes d'Entité:
Sinon les classes d'entité sont supprimés.
J'utilise prédéfinis DB(a généré plus tôt).
Est-il un moyen plus facile/mieux à dissimuler. Peut-être que je vais garder trop grand nombre de classes?
Dans mon cas, ce n'est l'astuce:
et
Avec obfucation et des optimisations.
Un petit plus pour la dernière version OrmLite 5.
Vous pouvez ajouter ces lignes à masquer certaines nouvelles mises en garde:
Avertissements sont comme celles-ci:
Je suis venu avec une telle solution (peut-être allons travailler pour quelqu'un de trop).
Fait de tels changements à
proguard.cfg
:Ajouté
-dontobfuscate
optionAjouté
,!code/allocation/variable
à-optimization
optionAPK taille du fichier à l'aide de ce type de configuration réduite de 580 ko à 250 ko.
Cependant, aucune dissimulation est effectuée.