使用Gradle无法解析Aar库的传递依赖

我调查了一段时间,可能在这里看到了与aar和可传递依赖项有关的最受欢迎的答案,但是对于我来说,如何使它起作用仍然不清楚。

所以:

我有给定gradle配置的android库:

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'

}

然后,我将其部署到本地Maven存储库gradle install。部署库的POM文件如下所示:

<?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>

最后使用上述库作为依赖项对我的Android应用程序进行配置:

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'

}

在手机上部署应用程序后,我得到NoClassDefFoundError了属于我的Android库的编译依赖项的类。

使用gradle dependencies以下命令检查我的android应用程序依赖项:

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

根据上面的树,没有检测到所有传递依赖。问题出在哪里,应如何正确解决?

回答:

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

compile ('com.somepackage:LIBRARY_NAME:1.0.0@aar'){

transitive=true

}

以上是 使用Gradle无法解析Aar库的传递依赖 的全部内容, 来源链接: utcz.com/qa/401993.html

回到顶部