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.
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
In meinem Fall war es ausreichend, Android.enableAapt2=false
zu gradle.properties hinzuzufügen.
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
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
}