wake-up-neo.com

Probleme mit Ressourcen, die durch Reagieren in Android Studio 3 generiert wurden

Ich habe kürzlich ein Upgrade auf Android Studio 3 durchgeführt

gradle plugin: 3.0.0-beta2
gradle: 4.1

In unserem Projekt verwenden wir: "react-native": "0.46.4" mit dem Codepush Plugin .

Gebäude:

gradlew assembleStagingDebug

funktioniert einwandfrei, aber sobald ich versuche, die Produktion aufzubauen:

gradlew assembleProductionRelease

Ich erhalte einen Fehler, der durch Ressourcen verursacht wird, die durch Reagieren in der processProductinoReleaseResources-Aufgabe erstellt wurden:

Issues:
 - ERROR: /Users/user/react/Android/app/build/intermediates/res/merged/production/release/drawable-hdpi/node_modules_reactnavigation_src_views_assets_backicon.png uncompiled PNG file passed as argument. Must be compiled first into .flat file.
 - ERROR:  failed parsing overlays
        at com.Android.builder.internal.aapt.v2.AaptV2Jni.buildException(AaptV2Jni.Java:154)

Bei meiner Eroberung dieses Problems habe ich versucht, Proguard wie folgt zu deaktivieren:

buildTypes {
        release {
            debuggable true
            minifyEnabled false
            shrinkResources false
        }
        debug {
            debuggable true
            minifyEnabled false
            println proguardFiles
        }
    }

Aber ohne Glück.

Irgendwelche Ideen? Ich würde mich auch über eine Erklärung freuen, wo diese .flat-Konvertierung der Android-Ressourcen stattfindet, was sie tatsächlich tut und warum sie nicht während der StagingDebug-Aufgabe stattfindet.

Die vorgestellte Problemumgehung hier hat am Ende für mich funktioniert. Aber das ursprüngliche Problem bleibt meiner Meinung nach bestehen.

Update 28.3.2018Seit dem Upgrade von Android Studio 3.1 erhalte ich Folgendes:

WARNING: The option 'Android.enableAapt2' is deprecated and should not be used anymore. Use 'Android.enableAapt2=true' to remove this warning. It will be removed at the end of 2018

Da die Probleme auf der Seite "Reagieren" geschlossen sind, suche ich nach Alternativen, bevor sie diese Problemumgehung verwerfen.

16
Mike T

Fügen Sie in Ihrer Datei gradle.properties folgende Zeilen hinzu:

classpath 'com.Android.tools.build:gradle:3.0.0'
distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.Zip
Android.enableAapt2=false
18
user7532779

In meinem Fall war es ausreichend, Android.enableAapt2=false zu gradle.properties hinzuzufügen.

4
user1791914

Ich hatte ein ähnliches Problem in meiner App. Es wird von .__ gelöst. Wechseln Sie in das Verzeichnis "Android" und führen Sie es aus 

gradlew clean
0
Vipul

In meinem Fall musste ich compile durch implementation ersetzen.

Ändern Sie app/build.gradle wie folgt:

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.Android.support:appcompat-v7:23.0.1"
    implementation "com.facebook.react:react-native:+"  // From node_modules
}
0
azwar_akbar