2015-05-07 2 views
1

Мы продвигаем наш летний проект Android в Android Studio и вдали от затмения.Как разместить файлы jar перед SDK в Android Studio?

Проблема в том, что у нас есть несколько файлов jar, которые используют код, специфичный для устройств, над которыми мы работаем. (Я знаю, не говорите этого, я работаю со всей командой, чтобы пройти мимо этого.) Поскольку эти файлы JAR переопределяют некоторые из кода Bluetooth, они должны идти вперед в SDK в списке зависимостей для этой вещи строить. (Эти библиотеки предназначены только для времени компиляции.)

В то время как на eclipse Android SDK был полностью взорванным плагином, и я мог полностью контролировать библиотеки и убедиться, что эти библиотеки были первыми. С Android Studio я, похоже, не могу контролировать положение SDK в пути зависимостей.

Я отредактировал файл app.iml и изменил порядок меток orderEntry внизу. Это, похоже, устранило проблему внутри IDE, и похоже, что сейчас она прекрасно работает.

Я все еще не могу построить проект, используя град.

На основе обратной связи здесь, здесь мой текущий 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 
    } 
} 

Любые идеи?

ответ

0

Помещенные банки вы хотите компилировать время только в папку (для моего примера: extlib) Затем добавить некоторые конфигурации в build.gradle

configurations { providedCompile } 

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

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

изменил мою build.gradle в соответствии с вашими комментариями, и я все еще получаю те же результаты во время сборки. Я опубликовал новый build.gradle в своем вопросе. – Thom

+0

Можете ли вы предоставить сообщения об ошибках после того, как вы исключите «gradle assembleDebug» –

Смежные вопросы