Ответ 1
В файле 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 Studio 3
gradle plugin: 3.0.0-beta2
gradle: 4.1
В нашем проекте мы используем: "react-native": "0.46.4" с плагином codepush.
Строительство:
gradlew assembleStagingDebug
работает отлично, но как только я пытаюсь построить производство:
gradlew assembleProductionRelease
Я получаю сообщение об ошибке, вызванное ресурсами, создаваемыми в результате выполнения задачи processProductinoReleaseResources:
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)
В своем завоевании против этой проблемы я попробовал это с отключением proguard как:
buildTypes {
release {
debuggable true
minifyEnabled false
shrinkResources false
}
debug {
debuggable true
minifyEnabled false
println proguardFiles
}
}
Но без везения.
Есть идеи? Я также был бы признателен за объяснение того, где это.flat-преобразование ресурсов android происходит, что оно на самом деле делает и почему это не происходит во время задачи StagingDebug.
Обходной путь, представленный здесь, работал для меня в конце. Но оригинальная проблема сохраняется, я думаю.
Обновление 28.3.2018 С момента обновления Android studio 3.1 я получаю следующее:
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
для gradle.properties.
В моем случае мне пришлось заменить 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
}
Я столкнулся с аналогичной проблемой в своем приложении. Это разрешено, перейдя в каталог "Android" и запустите
gradlew clean