依赖关系构建错误-安装第三方依赖关系程序包并将其链接到我的react-native应用程序后未找到dialogCornerRadius

时间:2019-05-31 03:55:53

标签: android react-native gradle build.gradle onesignal

上下文

我正在处理最近弹出的Expo(React Native)项目。我刚刚将OneSignal节点软件包安装到我的项目中。

npm install react-native-onesignal && react-native link react-native-onsignal

然后在我的Android项目的android/app/build.gradle文件(sdkNumbers,依赖项和libs所在的文件)中,我进行了以下设置:

  android {
  compileSdkVersion 28
  buildToolsVersion '28.0.0'

  defaultConfig {
    ...
    minSdkVersion 21
    targetSdkVersion 28
    ...
  }

...在同一个文件的“依赖项”部分中,我拥有最近链接的lib(onesignal)...

dependencies {
  compile project(':react-native-onesignal')
  ...    
}

因此,我的原生Android项目设置为使用API​​ 28功能构建(基本上就是所有sdkNumbers设置为28的意思)。

问题

错误,当我尝试构建Android应用时遇到的错误是:

    > Task :react-native-onesignal:verifyReleaseResources FAILED

    FAILURE: Build failed with an exception.

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

试用版

我也尝试将所有com.android.support库都更改为最新版本(28)。问题仍然存在。

我试图撤消AndroidX迁移。问题变成了一些Proguard疯狂的东西。太疯狂了,我回到了AndroidX。

1 个答案:

答案 0 :(得分:0)

解决方案

我只需要更新路径build.gradle中的依赖项(单一信号)node_modules/react-native-onesignal/android/build.gradle文件即可。

基本上,我将 onesignal compileSdkVersion从26更改了

android {
    compileSdkVersion safeExtGet('compileSdkVersion', 26)
    buildToolsVersion safeExtGet('buildToolsVersion', '26.0.2')

至28

android {
    compileSdkVersion 28
    buildToolsVersion safeExtGet('buildToolsVersion', '26.0.2')

它可以正常运行,并且通知现在可以正常工作。

TL; DR

我将onesignal的build.gradle compileSdkVersion更改为与Android主要build.gradle文件相同的文件。