android - ./gradlew assembleRelease 更新以将 native 59.8 和 gradle react 为 5.1 时构建失败

标签 android react-native gradle

在将 react-native 更新到 59.8 并将 gradle 更新到 5.1 之前,我可以使用 ./gradlew assembleRelease 进行构建。当我将 react native 更新到 59.8 并将 gradle 更新到 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"
}

最佳答案

我有同样的错误。我刚换了./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 } } } }把它放在 EXT 在 android/gladle 之前。您将能够保留 ./gradlew assembleRelease
问题是与依赖项中的 buildtools 与 android 项目中的 buildtools 冲突

关于android - ./gradlew assembleRelease 更新以将 native 59.8 和 gradle react 为 5.1 时构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56380373/

相关文章:

java - 在 if 语句中读取字符串时遇到问题

java - 使用 Android 开发工具更新 Eclipse v. 23

android - 在圆形 ImageView 中获取用户个人资料图片

android - 在 ListView 中突出显示整个焦点行

javascript - 如何在 typescript 项目中导入js文件?

node.js - Node 本地依赖项安装为快捷方式并嵌套而不是平面

javascript - React native - 对象作为 React 子对象无效(找到 : object with keys {$$typeof, 类型、键、引用、 Prop 、_owner、_store})

grails - 使用 Assets 管道和sass-grails-asset-pipeline的Grails 3 “Build failed with an exception”

android - 我有一个构建我的Flutter应用程序的 Prop

maven - Android Studio连接被拒绝