我在Intranet maven repo中有一个utilities.aar。它使用一些众所周知的罐子,如gson。我已将它们定义为实用程序模块的build.gradle中的编译依赖项,如下所示
dependencies {
compile 'com.android.support:support-v4:23.1.1'
compile 'com.google.code.gson:gson:2.3.1'
compile 'commons-codec:commons-codec:1.4'
compile 'org.apache.commons:commons-lang3:3.4'
}
使用uploadArchives gradle任务在我们的Intranet服务器上上传了Artifactory repo。 Artifactory上显示的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>adsf.asdf.utils</groupId>
<artifactId>utilities</artifactId>
<version>2.0.0.0</version>
<packaging>aar</packaging>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-v4</artifactId>
<version>23.1.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.4</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
我正在使用Android Studio v1.5构建工具23.0.2和gradle v2.8构建一个Android应用程序。此ADT包已于2016年1月下载。我的应用程序依赖于utilities.aar。它使用网页上的代码段添加到应用的build.gradle中,如下所示
compile(group: 'asdf.asdf.utils', name: 'utilities', version: '2.0.0.0', ext: 'aar')
Android Studio不会显示任何错误。它编译成一个很好的apk但当我运行它时,应用程序会立即崩溃java.lang.NoClassDefFoundError: com.google.gson.GsonBuilder
。
不应该自动下载gson并根据Artifactory repo中的pom将其编译到apk中吗?我是maven,android studio,gradle等的新手。我习惯于在Eclipse ADT中开发。我将不胜感激任何帮助。
答案 0 :(得分:0)
Buddy这些库中的大多数包括gson都可以通过远程存储库获得。请尝试这篇文章的第3步:
https://stackoverflow.com/a/35369267/5475941
例如,gson搜索结果:
我希望它有所帮助。