wake-up-neo.com

transformClassesAndResourcesWithProguardForRelease FAILED

Ich versuche, meine Android-Anwendung mit Gradle in der Konsole zu erstellen. __ Aber unter Fehler bei der Aufgabe ': app: transformClassesAndResourcesWithProguardForRelease':

build.gradle:

buildscript {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.2.3'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

app/build.gradle

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 24
    buildToolsVersion '24.0.2'
    defaultConfig {
        applicationId "com.XXX.XXX"
        minSdkVersion 14
        targetSdkVersion 24
        versionCode 1
        versionName "0.1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'),
                    'proguard-rules.pro'
        }
    }
}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.Android.support', module: 'support-annotations'
    })
    compile('com.squareup.retrofit2:retrofit:2.1.0') {
        exclude module: 'okhttp'
    }
    compile 'com.Android.support:appcompat-v7:24.2.1'
    compile 'com.Android.support:design:24.2.1'
    compile 'com.squareup.okhttp3:okhttp:3.4.1'
    compile 'com.squareup.retrofit2:converter-moshi:2.1.0'
    compile 'moe.banana:moshi-jsonapi:2.2.0'
    compile 'com.squareup.moshi:moshi-adapters:1.3.1'
    compile 'com.google.Android.gms:play-services-maps:9.6.0'
    compile 'com.Android.support:multidex:1.0.1'
    compile 'com.google.firebase:firebase-core:9.6.0'
    compile 'com.google.firebase:firebase-crash:9.6.0'
    testCompile 'junit:junit:4.12'
}

apply plugin: 'com.google.gms.google-services'

gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.Zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

./gradlew build --stacktrace

Dies ist die Ausnahme, die ich erhalte:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task
':app:transformClassesAndResourcesWithProguardForRelease'.
62
M. Mirmousavi

Fügen Sie diesen Code zu Ihren proGuard-Regeln hinzu. Das hat für mich funktioniert

-ignorewarnings
-keep class * {
    public private *;
}

Die Antwort wurde hier veröffentlicht: Ausführung fehlgeschlagen für Task ': app: transformClassesAndResourcesWithProguardForRelease

95

diesen Code zu ..your-project/app/proguard-rules.pro hinzufügen 

 -ignorewarnings

ihre signierte apk wird erfolgreich generiert ...

Update:

Es ist besser, Ihre Warnmeldungen mithilfe von -dontwarn oder -keep.__ zu korrigieren. Schlüssel auf Ihrem proguard-rules.pro... Wenn Sie (möglicherweise Ihre Bibliotheken) Java Reflection in Ihrem Code verwenden, wird die Anwendung abgestürzt ...

51
Richi

Es funktionierte für mich, dass ich folgendes in einer Pro-gaurd.txt-Datei hinzufügen musste

#### -- Picasso --
 -dontwarn com.squareup.picasso.**

 #### -- OkHttp --

 -dontwarn com.squareup.okhttp.internal.**

 #### -- Apache Commons --

 -dontwarn org.Apache.commons.logging.**

     -ignorewarnings 
-keep class * {
public private protected *;
}
6
Haris Durrani

Ich habe nichts geändert, nur kommentieren

// shrinkResources true
// minifyEnabled true

sie möchten keine Proguard-Datei ändern, die ich bereits nach 2 Tagen nach diesem Problem gesucht habe 

4
Brijesh Tanwar
buildTypes {
    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-Android.txt'),
                'proguard-rules.pro'
    }
}

Bitte entfernen Sie den oben genannten Code in Ihrem Schulabschluss. Das hat für mich funktioniert. Dies ist nur für ein gegebenes Problem.

1
Ayaz Muhammad

Verwenden Sie diesen Code in 'proguard-rules.pro' möglicherweise aufgelöst.

-keep class * {
public private protected *;
}

oder

-keep class * {*;}
  • hinweis: Obige Befehle ignorieren Verschleierungen

  • kann dies stattdessen oben verwenden, um den Zustand der Verschleierung zu speichern

    -keepnames-Klasse * {*;}

1
Ali Bagheri

Ich habe die gleiche Fehlermeldung erhalten, als ich nach der Installation React-native-firebase Build Build-Build in Android ausprobierte.

Dies sind die Schritte, die ich befolgt habe, 

  1. Führen Sie alle Konfigurationen aus, die in der Dokumentation zu reaktiver Firebase erwähnt werden. 
  2. Erstellen Sie eine Android-App mit diesem Befehl

    ./gradlew montierenfreigabe

  3. Diese Fehlermeldung erhalten.

FEHLER: Die Erstellung ist mit einer Ausnahme fehlgeschlagen.

  • Was ist schief gelaufen: Die Ausführung der Task ist fehlgeschlagen: app: transformClassesAndResourcesWithProguardForRelease '.

    Job fehlgeschlagen. Weitere Informationen finden Sie in Protokollen

Dieses Problem wurde behoben, indem diese Codezeile in Android/app/build.gradle geändert wurde.

minifyEnabled true

zu diesem

minifyEnabled enableProguardInReleaseBuilds

Dies war die einzige Änderung, die ich vorgenommen habe. Für mich geht das.

0

Klicken Sie in Android Studio im Menü "Erstellen" auf "Projekt neu erstellen".

0
Niclin

füge - ignorewarnings in deine Proguard-Datei ein und behalte nur die Klasse, die du nicht verschleiern wolltest. Einige Bibliotheken empfehlen, einige ihrer Klassen beizubehalten, wenn Sie Proguard-Regeln verwenden. Besuchen Sie Ihre Bibliotheken für Details

0
user3135923

Ich habe seit geraumer Zeit mit proguard-rules.pro zu kämpfen und bin auf keinen Fall ein Profi! Ich poste meine Datei, um zu zeigen, dass Sie class * nicht ohne Parameter beibehalten sollten, da dies jegliche Verschleierung deaktiviert. Sie können jedoch jede Klasse schützen, die von einer bestimmten Klasse ausgeht, oder jede Klasse, die eine bestimmte Schnittstelle implementiert. Sie können auch jede Klasse schützen, die über einen Konstruktor mit bestimmten Elementen verfügt .. Bitte beachten Sie, dass ich nicht jede einzelne Zeile kommentierte, da ich mir nicht zu 100% sicher bin, was alles tut - es ist eher eine gebildete Vermutung Projekt beinhaltet ksoap2 (okhttp3, okio, XmlPull), dafür gibt es viele Regeln.

Vielleicht kann dies ein Ausgangspunkt für Sie sein - Sie müssen möglicherweise noch zusätzliche Regeln für Ihre Klassen hinzufügen.

-Android
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable

-keep public class * extends Android.app.Activity
-keepclasseswithmembers class * extends com.way4net.oner.lifa.plugin.ThemedFragment
-keepclasseswithmembers class * extends com.way4net.oner.lifa.plugin.ThemedActivity
-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
-keepattributes Signature #there were 1 classes trying to access generic signatures using reflection emfehlung von proguard selbst

-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 ** CREATOR;
}

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

-keepclassmembers class * {
    @Android.webkit.JavascriptInterface <methods>;
}

-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn Android.support.v4.**
#-dontwarn javax.annotation.**
#-dontwarn org.xmlpull.v1.**
-dontnote Android.net.http.*
-dontnote org.Apache.commons.codec.**
-dontnote org.Apache.http.**
-dontnote okhttp3.**
-dontnote org.kobjects.util.**
-dontnote org.xmlpull.v1.**
-keep class okhttp3.** {
      *;
 }

-keep class org.xmlpull.v1.XmlSerializer {
    *;
}
-keep class org.xmlpull.v1.XmlPullParser{
    *;
}
-dontwarn org.xmlpull.v1.XmlPullParser

-keep class org.xmlpull.v1.XmlSerializer {
    *;
}
-dontwarn org.xmlpull.v1.XmlSerializer

-keep class org.kobjects.** { *; }
-keep class org.ksoap2.** { *; }
-keep class okio.** { *; }
-keep class org.kxml2.** { *; }
-keep class org.xmlpull.** { *; }

0
FrankKrumnow