lStar 资源链接失败

我正在开发一个 React Native 应用程序。我的 Android 构建开始在CI环境(和本地)中失败,没有任何更改。

Execution failed for task ':app:processDevelopmentDebugResources'.

> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Android resource linking failed
.../app/build/intermediates/incremental/mergeDevelopmentDebugResources/merged.dir/values/values.xml:2682: AAPT: error: resource android:attr/lStar not found.

根据Android:即使没有任何更改资源链接在测试执行时也会失败,这是因为某些库升级了。

lStar需要compileSdkVersion 31而我的项目使用compileSdkVersion 28

如何跟踪最近更新了哪些库,或者哪个库导致了这种情况?

回答

问题@react-native-community/netinfo。只需尝试使用更新包

yarn add @react-native-community/netinfo

或者

npm update @react-native-community/netinfo

无需对您的 Gradle 或 Android 文件进行任何更改,因为它们可能会使事情变得更加混乱。

  • 是的,这个也对我们有用。从 5.xx 升级到 6.0.1,目前没有发现回归问题

转到android/build.gradle并将androidXCore = "1.6.0"添加到ext

ext {
buildToolsVersion = "29.0.2"
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
googlePlayServicesAuthVersion = "16.0.1"
androidXCore = "1.6.0"
}

转到您的package.json文件并删除尽可能多的依赖项,直到项目成功构建。然后开始一一加回依赖,检测哪些有问题。

然后,您可以通过在 node_modules/[dependencie]/android/build.gradle 上加入这些依赖项并将androidx.core:core-ktx:androidx.core:core:设置为特定版本(在我的情况下为 1.6.0)来手动修补这些依赖项)。

  • 我的是@react-native-community/netinfo
  • @radosław-rudnicki 最新版本很好 (5.9.7) 但进入 'node_modules\@react-native-community\netinfo\android\build.gradle' 并从实现 "androidx.core:core:$androidXCore" 更改第 67 行实现“androidx.core:core:1.6.0”
  • 您可以使用 **vscode** 打开 `node_modules` 文件夹并搜索 (Ctrl+Shift+F) 以获取 **androidx.core:core** 和 **androidx.core:core-ktx**
  • @martin,非常感谢!问题是 netinfo 的 build.gradle 上的 androidx.core:core 版本。
  • @RadosławRudnicki 我将 netinfo 的 **build.gradle** 上的 **implementation "androidx.core:core:$androidXCore"** 更改为 **1.0.1** 版本。然后我将创建一个带有 **patch-package** 的补丁

看起来core-ktx的 alpha02 版本存在错误。

如果您最近没有升级项目,可能有两个原因导致您的项目发生这种情况:

  1. implementation "androidx.core:core-ktx:+"

    在这种情况下,将其替换为

    implementation "androidx.core:core-ktx:1.6.0" (或任何适合您的版本)

  2. 在这种情况下,您有两个选择:

     ./gradlew :app:dependencies > dependencies.txt
    

    一个带有依赖树的文本文件将被添加到您的项目中。

    打开文件,你会看到这样的东西

     +--- MyApp:mylibrary:unspecified
    |    \--- com.android.support:appcompat-v7:25.3.1
    |         +--- com.android.support:animated-vector-drawable:25.3.1
    |         |    \--- com.android.support:support-vector-drawable:25.3.1
    |         |         \--- com.android.support:support-v4:25.3.1
    |         |              \--- LOCAL: internal_impl-25.3.1.jar
    |         +--- com.android.support:support-v4:25.3.1
    |         |    \--- LOCAL: internal_impl-25.3.1.jar
    |         \--- com.android.support:support-vector-drawable:25.3.1
    |              \--- com.android.support:support-v4:25.3.1
    |                   \--- LOCAL: internal_impl-25.3.1.jar
    \--- com.android.support:appcompat-v7:25.3.1
    +--- com.android.support:animated-vector-drawable:25.3.1
    |    \--- com.android.support:support-vector-drawable:25.3.1
    |         \--- com.android.support:support-v4:25.3.1
    |              \--- LOCAL: internal_impl-25.3.1.jar
    +--- com.android.support:support-v4:25.3.1
    |    \--- LOCAL: internal_impl-25.3.1.jar
    \--- com.android.support:support-vector-drawable:25.3.1
    \--- com.android.support:support-v4:25.3.1
    \--- LOCAL: internal_impl-25.3.1.jar
    

    搜索类似的东西

     androidx.core:core-ktx:1.6.0 -> 1.7.0-alpha-02
    

    追踪哪个依赖正在使用它。要修复它,您可能需要删除依赖项或将其降级到旧版本。


更改 android/build.gradle 并添加 androidXCore = "1.6.0" 对我有用。

ext {
buildToolsVersion = "29.0.2"
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
googlePlayServicesAuthVersion = "16.0.1"
androidXCore = "1.6.0"    //Add this line
}

以上是lStar 资源链接失败的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>