./gradlew assembleRelease构建在更新以响应本机59.8和gradle到5.1时失败

时间:2019-05-30 14:36:13

标签: android react-native gradle

在将react-native更新为59.8并将gradle更新为5.1之前,我可以使用./gradlew assembleRelease进行构建。当我将本机反应更新为59.8,并更新为5.1时,出现以下错误

 * What went wrong:
Execution failed for task ':react-native-app-settings:verifyReleaseResources'.
> java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
  \node_modules\react-native-app-settings\android\build\intermediates\res\merged\release\values-v28\values-v28.xml:7: error: resource android:attr/dialogCornerRadius not found.
  \node_modules\react-native-app-settings\android\build\intermediates\res\merged\release\values-v28\values-v28.xml:11: error: resource android:attr/dialogCornerRadius not found.
  \node_modules\react-native-app-settings\android\build\intermediates\res\merged\release\values\values.xml:2714: error: resource android:attr/fontVariationSettings not found.
  \node_modules\react-native-app-settings\android\build\intermediates\res\merged\release\values\values.xml:2715: error: resource android:attr/ttcIndex not found.
  error: failed linking references.

但是,如果我使用./gradlew bundleRelease,gradle将成功构建aab文件。该问题仅在./gradlew assembleRelease上发生。如何生成apk文件?以下是我的Gradle设置

     dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
}

//

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

//

 ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 19
    compileSdkVersion = 28
    targetSdkVersion = 28
    supportLibVersion = "28.0.0"
}

1 个答案:

答案 0 :(得分:1)

我有同样的错误。我只是将./gradlew assembleRelease替换为./gradlew app:assembleRelease。你应该尝试。

编辑:还有另一种方法。经过一番研究,我发现这段代码subprojects { subproject -> afterEvaluate{ if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) { android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion } } } }放在android / gladle中的EXT之前。而且您可以保留./gradlew assembleRelease

问题是与依赖项中的buildtools与android项目中的buildtools冲突