J'optimise un pot avec proguard, mais il se bloque après optimisation. ici est ma tâche PROGUARD:java proguard: la bibliothèque ne fonctionne pas après l'optimisation
<proguard>
-injars ${dist}/${jarname}
-outjars ${dist}-proguard/${jarname}
-target 5
-libraryjars '${java.home}/lib/rt.jar'
-dontobfuscate
-optimizationpasses 4
-overloadaggressively
-repackageclasses ''
-allowaccessmodification
-keep public class * {
public static void main(java.lang.String[]);
}
</proguard>
dès que je l'ai mis dans l'option -dontoptimize, cela fonctionne.
en fonction de la pile de l'exception, il se bloque lors de l'accès à un membre public statique d'une classe avec un pointeur null. voici le code:
public static Texture ring, dust, spikering, thinring, crystal, clouds;
public static void init() {
Field [] fields = TexturePool.class.getDeclaredFields();
for (Field field : fields) {
if(field.getType() == Texture.class) {
field.set(null, /*imagine new object here*/);
}
}
}
merci!
Je ne peux pas vraiment croire que l'accès (récupération, ou voulez-vous dire autre chose) le membre une NullPointerException. Voulez-vous dire que le membre peut être accédé, mais est lui-même nul, de sorte qu'une NullPointerException est levée, en essayant d'utiliser le membre? Si oui, d'où vient la valeur attendue? – jarnbjo
merci, et bien le membre est initialisé dans une fonction que j'appelle avant d'y accéder. – clamp
J'ai demandé à ce sujet, mais pourquoi ne pas vous soucier de nous dire ce qui se passe exactement? Quelle est la cause de l'exception NullPointerException? Une erreur interne de VM lors de l'accès au membre (comme votre message semble l'indiquer) ou simplement que le membre est null, de sorte qu'une exception NullPointerException est levée lorsque vous essayez d'accéder à l'instance de membre? – jarnbjo