【问题标题】:Unity Android plugin: error: resource android:attr/IStar not foundUnity Android 插件:错误:找不到资源 android:attr/IStar
【发布时间】:2021-12-23 05:14:40
【问题描述】:

我正在使用 Kotlin 为 Unity 开发一个 Android 蓝牙插件。我包含了我的 Kotlin 库的 .aar 文件(它在 Android Studio 中运行的应用程序中完美运行),由于我在运行时遇到了一些依赖错误,我开始使用 Android Dependency Resolver plugin

我首先添加了我的库在其 .gradle 文件中的依赖项:

dependencies {
    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.4.0'
    implementation 'com.google.android.material:material:1.4.0'

    // For Kotlin Coroutines
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2'
    
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

到我的图书馆的*Dependencies.xml,按照依赖解析器here 的指示:

<dependencies>
  <androidPackages>
    <repositories>
      <repository>https://repo.maven.apache.org/maven2</repository>
    </repositories>

    <androidPackage spec="androidx.appcompat:appcompat:1.4.0">
      <androidSdkPackageIds>
        <androidSdkPackageId>extra-google-m2repository</androidSdkPackageId>
      </androidSdkPackageIds>
      <repositories>
        <repository>https://maven.google.com</repository>
      </repositories>
    </androidPackage>

    <androidPackage spec="androidx.core:core-ktx:1.7.0">
      <androidSdkPackageIds>
        <androidSdkPackageId>extra-google-m2repository</androidSdkPackageId>
      </androidSdkPackageIds>
      <repositories>
        <repository>https://maven.google.com</repository>
      </repositories>
    </androidPackage>

    <androidPackage spec="org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2">
      <androidSdkPackageIds>
        <androidSdkPackageId>extra-google-m2repository</androidSdkPackageId>
      </androidSdkPackageIds>
      <repositories>
        <repository>https://maven.google.com</repository>
      </repositories>
    </androidPackage>

  </androidPackages>
</dependencies>

依赖解析器工作正常,但当我尝试编译项目时出现错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launcher:processReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Android resource linking failed
     /Users/myuser/.gradle/caches/transforms-2/files-2.1/f243f87f287fb4f4052bd069a9b71980/androidx.core.core-1.7.0/res/values/values.xml:105:5-114:25: AAPT: error: resource android:attr/lStar not found.

【问题讨论】:

    标签: android unity3d dependency-resolution


    【解决方案1】:

    lStar首先是在android-31中定义的,所以你可以把compileSdkVersion改成31+,或者把androidx改成低版本。

    【讨论】:

    • 我应该将所有使用 androidx 的 .aar 依赖项更改为较低版本吗?那应该是哪个版本?
    • 是的,但我不确定应该是哪个版本,我猜是 1.6。
    • 我找到了解决方法。 androidx.core.core-1.7.0的依赖导致了找不到IStar的问题,所以我从here手动下载了之前的版本(androidx.core.core-1.6.0)。然后我运行 Dependency Resolver,并手动删除了androidx.core.core-1.7.0。该应用程序按预期方式编译和运行。然而,我不得不说,我确实尝试在*Dependencies.xml 文件中指定我想使用androidx.core.core-1.6.0,但解析器仍然添加了androidx.core.core-1.7.0
    【解决方案2】:

    Dependency Resolver 有一个错误,您可以追踪相关问题here,以及我同时发现的workaround。记得关闭Assets -&gt; External Dependency Manager -&gt; Android Resolver -&gt; Settings下的Enable Resolution On Build

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      • 2019-07-14
      • 2019-01-29
      • 2019-12-26
      • 2019-05-01
      • 1970-01-01
      • 2022-07-02
      相关资源
      最近更新 更多