将外部.jar添加到Android库项目中

时间:2015-05-11 07:43:36

标签: android android-studio

我创建了一个包含库项目的应用程序并运行良好。但是,当我将.jar添加到我的库项目应用程序时,找不到这个.jar并且构建进程崩溃。

这些是我的.gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "org.gradiant.apps"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile project(':a')
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 21
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile(name: 'b', ext: 'jar')

}

repositories {
    flatDir {
        dirs 'libs'
    }
}

其中a是我的图书馆项目,b是我需要的新.jar。在logcat中出现以下消息:

Error:A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
   > Could not find :b:.
     Searched in the following locations:
         https://jcenter.bintray.com//b//b-.pom
         https://jcenter.bintray.com//b//b-.jar
     Required by:
         NewApps:app:unspecified > NewApps:a:unspecified

我该如何解决?

1 个答案:

答案 0 :(得分:0)

首先,在您的库项目中,确保它是以Android apks可以支持的二进制格式编译的。例如,如果库是用java 1.8编译的,而不是java 1.7(Android似乎需要的东西),就会出现问题(目前对我而言)。

为此,在您的库项目build.gradle文件中,您应该添加

allprojects {
 sourceCompatibility = 1.7
 targetCompatibility = 1.7
}

现在,在Android项目中,必须将编译依赖项添加到app/build.gradle(而不是项目根build.gradle),如下所示:

 dependencies {
 . . . 
 compile project (":aProject")
 . . .
}

最后,您应该添加到根项目settings.gradle

include ":aProject"
project(":aProject").projectDir = new File (settingsDir, "../../someFolderPath/aProject");

希望它有所帮助。