2016-02-25 148 views
0

我在Intranet maven倉庫中有一個utilities.aar。它使用幾個衆所周知的罐子,如gson。我在公用事業模塊的build.gradle它們定義爲編譯依賴如下從maven導致ClassNotFoundException。沒有包括aar的依賴關係

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' 
} 

已上傳Artifactory的回購使用uploadArchives gradle這個任務我們的內部網服務器上。在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 1.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

不應該gradle自動下載gson並將其編譯到apk文件中,以便根據Artifactory回購中的pom?我對maven,android studio,gradle等都很陌生,我習慣在Eclipse ADT中開發。我將不勝感激任何幫助。

+1

您可以在依賴項中添加傳遞:true選項,然後再試一次 –

+0

如果要下載依賴關係,請使用@aar符號,您應該添加transitive = true。 –

+0

@ GabrieleMariotti'ext:'aar''和'@ aar'一樣。 – RaGe

回答