Autore Topic: Offuscare con ProGuard  (Letto 811 volte)

Offline PumaY

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 7
Offuscare con ProGuard
« il: 28 Settembre 2012, 22:30:38 CEST »
0
Ciao a tutti,
qualcuno di voi sa come utilizzare ProGuard?

Io è da due giorni che faccio tentativi, ma se provo a compilare con ant mi genera questo errore:
Codice: [Seleziona]
[proguard] Warning: android.support.v4.view.accessibility.AccessibilityManagerC
ompatIcs$1: can't find referenced class android.view.accessibility.Accessibility
Manager$AccessibilityStateChangeListener
 [proguard] Warning: android.support.v4.widget.ScrollerCompatIcs: can't find ref
erenced method 'float getCurrVelocity()' in class android.widget.Scroller
 [proguard] Warning: android.support.v4.app.TaskStackBuilderHoneycomb: can't fin
d referenced method 'android.app.PendingIntent getActivities(android.content.Con
text,int,android.content.Intent[],int)' in class android.app.PendingIntent
 [proguard] Warning: there were 199 unresolved references to classes or interfac
es.
 [proguard]          You may need to specify additional library jars (using '-li
braryjars'),
 [proguard]          or perhaps the '-dontskipnonpubliclibraryclasses' option.
 [proguard] Warning: there were 55 unresolved references to program class member
s.
 [proguard]          Your input classes appear to be inconsistent.
 [proguard]          You may need to recompile them and try again.
 [proguard]          Alternatively, you may have to specify the options
 [proguard]          '-dontskipnonpubliclibraryclasses' and/or
 [proguard]          '-dontskipnonpubliclibraryclassmembers'.

BUILD FAILED
C:\android-sdk\tools\ant\build.xml:736: Please correct the above warnings first.


Total time: 5 seconds


contenuto del file build.xml alla riga 736:
Codice (XML): [Seleziona]
                <proguard>
                    @${proguard.config}
                    -injars       ${project.jars}
                    -outjars      "${obfuscated.jar.file}"
                    -libraryjars  ${android.libraryjars}
                    -dump         "${obfuscate.absolute.dir}/dump.txt"
                    -printseeds   "${obfuscate.absolute.dir}/seeds.txt"
                    -printusage   "${obfuscate.absolute.dir}/usage.txt"
                    -printmapping "${obfuscate.absolute.dir}/mapping.txt"
                </proguard>

E il contenuto del file proguard.cfg (nella cartella del progetto) è:
Codice: [Seleziona]
-injars      bin/classes
-injars      libs
-outjars     bin/classes-processed.jar
-libraryjars C:\android-sdk\platforms\android-10\android.jar;C:\Lib\org.json.jar

-dontskipnonpubliclibraryclasses
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*

-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.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*(...);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.content.Context {
   public void *(android.view.View);
   public void *(android.view.MenuItem);
}

-keepclassmembers class * implements android.os.Parcelable {
    static android.os.Parcelable$Creator CREATOR;
}

-keepclassmembers class **.R$* {
    public static <fields>;
}

Molti errori sono generati a causa di android.support.v4.... e nella cartella "libs" della mia app c'è il file android-support-v4.jar .. che teoricamente con l'istruzione "-injars      libs" dovrebbe leggere..
voi che ne pensate??
grazie in anticipo :)

Offline PumaY

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Windows 7
R: Offuscare con ProGuard
« Risposta #1 il: 21 Ottobre 2012, 23:44:37 CEST »
0
nessuno? :(

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 517
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Offuscare con ProGuard
« Risposta #2 il: 22 Ottobre 2012, 08:25:50 CEST »
0
prova ad aggiungere:

Codice (XML): [Seleziona]
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }

Comunque sembra un problema con la support library.
I numeri contano molto di più del seme.