最近Android Studio 3にアップグレードしました
gradle plugin: 3.0.0-beta2
gradle: 4.1
私たちのプロジェクトでは、「react-native」:「0.46.4」とcodepushプラグインを使用しています。
建物:
gradlew assembleStagingDebug
うまく動作しますが、プロダクションを構築しようとするとすぐに:
gradlew assembleProductionRelease
ProcessProductinoReleaseResourcesタスクのreactによって作成されたリソースが原因でエラーが発生します。
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)
この問題に対する私の征服で、私は次のようなプロガードを無効にしてそれを試しました:
buildTypes {
release {
debuggable true
minifyEnabled false
shrinkResources false
}
debug {
debuggable true
minifyEnabled false
println proguardFiles
}
}
しかし、運がありません。
何か案は? Androidリソースのこの.flat変換が実際に行われていること、およびStagingDebugタスク中になぜ行われないのかについての説明もありがたいです。
提示された回避策 ここ は最終的に私のために働きました。しかし、元の問題は私が思うに持続します。
update 28.3.2018Android studio 3.1 upgradeなのでこの:
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
反応ページの問題はクローズされているので、回避策を廃止する前に代替案を探しています。
Gradle.propertiesファイルに次の行を追加します。
classpath 'com.Android.tools.build:gradle:3.0.0'
distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.Zip
Android.enableAapt2=false
私の場合、Android.enableAapt2=false
to gradle.propertiesでこれを修正するのに十分でした。
[UPDATE]これは確かに減価償却されています。したがって、別の解決策を試してみてください。
アプリでも同様の問題が発生しました。 「Android」ディレクトリに移動して実行すると解決します
gradlew clean
私の場合、compile
をimplementation
に置き換える必要がありました。
変更app/build.gradle
することが:
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
}