当前位置: 首页 > 知识库问答 >
问题:

使用gradle未解析aar库的可传递依赖项

申屠亦
2023-03-14

我已经研究了一段时间,可能看到了与aar和传递依赖相关的最流行的答案,但不知何故,我仍然不清楚如何使其工作。

所以:

apply plugin: 'android-library'
apply plugin: 'android-maven'

version = "1.0.0"
group = "com.somepackage"

buildscript {
    repositories {
        mavenCentral()
        mavenLocal()
    }

    dependencies {
        classpath 'com.github.dcendents:android-maven-plugin:1.0'
    }
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.3'

    defaultConfig {
        minSdkVersion 10
    }
}

repositories {
    maven { url 'http://www.bugsense.com/gradle/' }
}

dependencies {
    provided 'com.google.android.gms:play-services:+'
    provided 'com.android.support:appcompat-v7:+'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.bugsense.trace:bugsense:3.6'
    compile 'commons-net:commons-net:3.3'
}
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sprezzat</groupId>
  <artifactId>app</artifactId>
  <version>1.0.0</version>
  <packaging>aar</packaging>
  <dependencies>
    <dependency>
      <groupId>com.bugsense.trace</groupId>
      <artifactId>bugsense</artifactId>
      <version>3.6</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>commons-net</groupId>
      <artifactId>commons-net</artifactId>
      <version>3.3</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.2.4</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
</project>
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
    mavenLocal()
}

android {
    compileSdkVersion 15
    buildToolsVersion "19.0.2"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }
}

dependencies {
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.somepackage:LIBRARY_NAME:1.0.0@aar'
}
apk - Classpath packaged with the compiled main classes.
+--- com.google.android.gms:play-services:+ -> 4.3.23
|    \--- com.android.support:support-v4:19.0.1 -> 19.1.0
+--- com.android.support:appcompat-v7:+ -> 19.1.0
|    \--- com.android.support:support-v4:19.1.0
\--- com.somepackage:LIBRARY_NAME:1.0.0

根据上述树,不检测所有的传递依赖。问题出在哪里,该如何正确做?

共有1个答案

平嘉熙
2023-03-14

我通过为aar依赖项设置transitive属性解决了问题:

compile ('com.somepackage:LIBRARY_NAME:1.0.0@aar'){
    transitive=true
}
 类似资料:
  • 问题内容: 我调查了一段时间,可能在这里看到了与aar和可传递依赖项有关的最受欢迎的答案,但是对于我来说,如何使它起作用仍然不清楚。 所以: 我有给定gradle配置的android库: 然后,我将其部署到本地Maven存储库gradle install。部署库的POM文件如下所示: 最后使用上述库作为依赖项对我的Android应用程序进行配置: 在手机上部署应用程序后,我得到了属于我的Andro

  • null 使用Jenkins Artifactory插件,我能够将这两个模块的JAR发布到Artifactory,但我的另一个依赖于的项目未能构建,出现以下gradle错误 找不到com.mygroup:lib-api:1.0.0-snapshot lib-api/build.gradle null null 我的理解是,ArtiFactory/Gradle应该足够聪明,能够将解析为最新的时间戳快

  • 现在假设我有项目B,我们叫它酒吧。Bar是一个Android应用程序,Bar依赖于Foo。 嗯,我有。但是,当我在Foo from Bar中调用一个调用OkHttp的函数时,我会得到以下消息: 这样的事情可能发生吗?还是Bar需要手动依赖OkHttp以及Foo拥有的任何其他依赖项?

  • 我刚刚将我的项目升级到gradle 7,并且遇到了缺失的可传递依赖项。我试着改变我的身材。gradle文件在依赖项中使用“api”,但这并没有修复它。 projectA依赖于projectB,projectB依赖于projectC。 projectA-build。格拉德尔 projectB-构建。格拉德尔 ProjectA编译良好,但有运行时错误-从project ectC获取类的ClassNot

  • 我正在为一个供应商做一个库项目,它需要Android Volley作为一个依赖项。我已经在Android Studio中使用了这个Create aar文件来创建.aar文件,并将其包含在一个测试项目中,我正在使用这个添加本地.aar文件到使用“flatdirs”的Gradle build中是不起作用的。库链接精细,项目编制无差错。但在运行时,测试应用程序崩溃,说它找不到Volley 我的图书馆项目

  • 我正在从一个使用Android-Maven-Plugin的Maven项目中构建一个Android应用程序。在这个项目中,我使用了新的beta版数据绑定库。 它包含在Android SDK的本地m2repository中(extras/Android/m2repository)。这个存储库中的库打包为AAR类型。 附注:对于我自己的本地构建,我有几个解决方案(例如重新打包为jar),但我更喜欢一个更