2015-01-27 4 views
8

Ich bin mit Android Studio v.1.0 Meine Build-Datei:FileNotFoundException auf proguard-rules.pro Datei

buildTypes { 

    debug { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 

    } 

    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 

aber wenn ich versuche, ein Release-Build zu machen, ich erhalte eine Fehlermeldung: Fehler: Ausführung fehlgeschlagen für Task ': app: proguardRelease'.

java.io.FileNotFoundException: F:....\app\proguard-rules.pro (File not found)

Ich denke, dass proguard-android.txt ein Teil von Android SDK ist, habe ich recht?

Und warum Android Studio kann es nicht finden?

Ich habe auch versucht proguard-android.pro - das gleiche Ergebnis

+0

Haben Sie proguard-rules.pro-Datei im Stammverzeichnis des Projekts erstellt Verzeichnis? –

+0

sollte ich es manuell hinzufügen? Können Sie bitte genaue Anweisungen teilen, wie es richtig geht? –

+0

Wenn Sie keine speziellen Regeln haben, versuchen Sie eine leere Datei oder entfernen Sie den ', 'proguard-rules.pro'' Teil – zapl

Antwort

3

Ich habe meine eigene proguard-android.pro Datei erstellt und das funktioniert für mich richtig:

-dontwarn org.apache.commons.** 
-dontwarn com.google.** 
-dontwarn com.j256.ormlite** 
-dontwarn org.apache.http** 

-keepattributes SourceFile,LineNumberTable 
-keep class com.j256.** 
-keepclassmembers class com.j256.** { *; } 
-keep enum com.j256.** 
-keepclassmembers enum com.j256.** { *; } 
-keep interface com.j256.** 
-keepclassmembers interface com.j256.** { *; } 

-keepattributes Signature 
# GSON Library 
# For using GSON @Expose annotation 
-keepattributes *Annotation* 

# Gson specific classes 
-keep class sun.misc.Unsafe { *; } 
#-keep class com.google.gson.stream.** { *; } 

# Application classes that will be serialized/deserialized over Gson 
-keep class com.google.gson.examples.android.model.** { *; } 

# Google Map 
-keep class com.google.android.gms.maps.** { *; } 
-keep interface com.google.android.gms.maps.** { *; } 
2
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 

folgende Zeile in build.gradle Datei Ihres App-Modul zeigt das Skript von proguard auf Ihr Release-Build anwenden muss. Es verfügt über zwei Dateien:

  1. proguard-android.txt: ist die Standard-Android-proguard Datei können in D gefunden werden: \ SDK \ Tools \ proguard Verzeichnis SDK.
  2. 'proguard-rules.pro': Es enthält Ihr anwendungsspezifisches Programm Skript. Sie müssen diese Datei im Stammordner Ihrer Anwendung erstellen. Alle Ihre Anwendung spezifische Progress sollte innerhalb dieser Datei sein.
6

Wenn Sie irgendeine spezifische ProGuard Konfiguration nicht brauchen:

buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt') 
    } 
} 

(Die Warnung ist möglicherweise aufgetreten.)

Oder geben Sie "Regeln" an und geben Sie sie hier ein:

.../app/proguard-rules.pro 

Zum Beispiel verwende ich „Buttermesser“ und mein proguard-rules.pro sieht aus wie:

-keep class butterknife.** { *; } 
-dontwarn butterknife.internal.** 
-keep class **$$ViewInjector { *; } 

-keepclasseswithmembernames class * { 
    @butterknife.* <fields>; 
} 

-keepclasseswithmembernames class * { 
    @butterknife.* <methods>; 
} 

Oder vielleicht können Sie build.gradle Datei belassen, wie es ist (wenn Sie nicht mögen Warnungen)), und lege einfach eine leere proguard-rules.pro an diesen Ort.

1

überprüfen Sie bitte Ihre 'proguard-rules.pro' in Ihrem Root-Projektordner. Wenn Ihr Projekt von Eclipse exportiert wird, müssen Sie 'proguard-rules.pro' im Root-Projektordner erstellen.

0

Eine Abhilfe ist, eine der folgenden Optionen zum Herunterladen:

http://dl.google.com/android/android-sdk_r22.6.2-linux.tgz 
http://dl.google.com/android/android-sdk_r22.6.2-windows.zip 
http://dl.google.com/android/android-sdk_r22.6.2-macosx.zip 

und kopieren Sie die folgenden Dateien:

tools/hprof-conv 
tools/support/annotations.jar 
tools/proguard 
Verwandte Themen