如何在Android Studio中将jar文件放在SDK之前?

时间:2015-05-07 15:24:40

标签: android android-studio gradle

我们正在将我们多年前的Android项目迁移到Android Studio并远离日食。

问题是我们有一些jar文件使用特定于我们工作的设备的代码。 (我知道!不要这么说。我正在和整个团队一起努力克服这个问题。)由于这些JAR文件覆盖了一些蓝牙代码,他们必须先在依赖列表中找到SDK。建立。 (这些库仅用于编译时。)

在eclipse上,Android SDK是一个完整的插件,我可以绝对控制库,并确保这些库是第一个。使用Android Studio,我似乎无法在依赖路径中控制SDK的位置。

我编辑了app.iml文件并更改了底部orderEntry标记的顺序。这似乎解决了IDE内部的问题,现在看起来很好。

我仍然无法使用gradle构建项目。

根据此处的反馈,这是我当前的build.gradle

apply plugin: 'com.android.application'

configurations { razrBuild }

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    razrBuild fileTree(dir:'assets',include: ['*.jar'])
    provided files('assets/BluetoothGattService.jar')
    provided files('assets/BluetoothGatt.jar')
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.1.1'
    compile files('libs/android-support-v4.jar')
    compile files('libs/myapp-util.jar')
}

project.afterEvaluate {
    project.android.applicationVariants.all { v ->
        v.javaCompile.classpath += configurations.razrBuild
    }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

将您想要编译时间的jar只放入一个文件夹中(对于我的例子:extlib) 然后将一些配置添加到build.gradle

configurations { providedCompile }

dependencies {
      providedCompile fileTree(dir:'extlib',include:['*.jar'])  
}

project.afterEvaluate {
    project.android.applicationVariants.all { v ->
        v.javaCompile.classpath += configurations.providedCompile
    }
}