2013-08-08 39 views
5

Tôi đã nhập thành công ActionBarSherlock vào dự án của mình và cần nhập hai thư viện khác: Sliding LayerCrouton. Tôi biết rằng những câu hỏi tương tự đã xuất hiện ở đây trước đây, nhưng tôi đã thử gần như tất cả mọi thứ, mỗi lần phá vỡ một cái gì đó trong dự án theo cách mà tôi phải bắt đầu lại.Android Gradle và thư viện nhập

cây dự án của tôi trông giống như:

MyProject/ 
+ app/ 
+ libraries/ 
    + actionbarsherlock/ 
    + crouton/ 
    + slidinglayer/ 

tôi nhập khẩu hai thư viện là mô-đun (File-> Import Module)

tập tin setting.gradle My có vẻ như nó nên:

include ":libraries:actionbarsherlock", ':Krypto', ':libraries:crouton', ':libraries:slidinglayer' 

actionbarsherlock gradle:

buildscript { 
    repositories { 
     maven { url 'http://repo1.maven.org/maven2' } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android-library' 

dependencies { 
    compile files('libs/android-support-v4.jar') 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 16 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
     } 
    } 
} 

ứng dụng gradle:

buildscript { 
    repositories { 
     maven { url 'http://repo1.maven.org/maven2' } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile project(":libraries:actionbarsherlock") 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 7 
     targetSdkVersion 16 
    } 
} 

slidinglayer gradle:

apply plugin: 'android-library' 

dependencies { 
    compile "com.android.support:support-v4:18.0.0" 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

    defaultConfig { 
     minSdkVersion 4 
     targetSdkVersion 18 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
     } 
    } 
} 

Trong thư mục crouton không có tập tin gradle.build. Nó trông như thế nào? Chỉ có các tệp java (không có tài nguyên).

Cách thiết lập các phụ thuộc chính xác trong thư viện crouton và thư viện trượt?

Trả lời

5

build.gradle cho crouton

buildscript { 
    repositories { 
     maven { url 'http://repo1.maven.org/maven2' } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 

apply plugin: 'android-library' 

dependencies { 
    compile 'com.android.support:support-v4:18.0.0' 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 17 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
     } 
    } 
} 

và trong build.gradle ứng dụng của bạn, thay đổi

dependencies { 
    compile project(":libraries:actionbarsherlock") 
} 

để

dependencies { 
    compile project(":libraries:actionbarsherlock") 
    compile project(":libraries:crouton") 
    compile project(":libraries:slidinglayer") 
} 

và nhập khẩu một lần nữa trong Android Studio

1

Tôi không biết cách giải quyết vấn đề của bạn, nhưng khi tôi gặp vấn đề về việc sử dụng thư viện của bên thứ ba trong Gradle build, tôi đã giải quyết bằng cách làm theo.

Sau đây là cấu trúc dự án của tôi.

GsonDemoProject
      GsonDemo
            build
            libs
                    android-support-v4.jar
                    gson.jar
            src
                    chính
                    build.gradle
            build.gradle
            settings.gradle

tôi thay đổi nội dung tập tin của tôi build.gradle mà nằm trong thư mục src.

dependencies { 
    compile files('libs/android-support-v4.jar','libs/gson.jar') 
} 

tôi đặt tài liệu tham khảo của thư viện của bên thứ 3 trong dependencies tag như trên. Trong dự án của tôi libs là thư mục chứa thư viện.

+0

tôi đã cố gắng thêm thư viện crouton vào 'actionbarsherloc k/libs 'và thêm' libs/crouton 'vào build.gradle, như bạn đã đề xuất - vẫn còn lỗi. Ngoài ra, tôi đã thử ý tưởng tương tự với việc thêm 'biên dịch tệp' vào các phụ thuộc trong ứng dụng build.gradle - vẫn không có kết quả. – Bresiu

+0

@Bresiu, thư viện của bạn có nằm trong thư mục 'libs' không? thử 'biên dịch các tập tin ('libs/android-support-v4.jar', 'libs/actionbarsherlock.jar', 'libs/crouton.jar')'. Như bạn thấy trong mã, '.jar' là bắt buộc. :) –

+0

Các thư viện này không phải là .jars. Đây là những dự án bình thường được đánh dấu là thư viện. Tôi đã cố gắng để thêm nó vào thư mục libs bên trong actionbarsherlock như tôi đã nói, và trong thử thứ hai, tôi đã cố gắng để dán thư viện bên trong thư mục apps libs. Không thành công. Tôi không hiểu những điều này. Chỉ thư viện tôi đã nhập thành công mới là actionbarsherlock với hướng dẫn này: http://stackoverflow.com/a/16639227/1888738 với một số thay đổi được đưa ra trong nhận xét. – Bresiu