2013-10-10 19 views
31

Tôi có một thiết lập thư mục/dự án này như:Yêu cầu dự án Gradle từ một thư mục

C:\ 
    _dev\ 
     Projects\ 
      Logger 
      MyProject 

Logger là một dự án thư viện Android sử dụng Gradle. MyProject là dự án tiêu chuẩn của dự án Android cần sử dụng thư viện Logger.

Tôi đang sử dụng Android Studio và đã thử thêm Logger vào thư viện bên ngoài. Trong khi điều này làm việc trong quá trình phát triển, tôi nhận được thông báo về lớp học không được tìm thấy khi xây dựng.

Tôi hoàn toàn mới để Gradle, nhưng đã thử các sau đây trong build.gradle của tôi trong vòng MyProject:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.1.0" 

    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 18 
    } 

    dependencies { 
     compile files("../Logger") 
    } 
} 

dependencies { 
    compile 'com.android.support:gridlayout-v7:18.0.0' 
    compile 'com.android.support:appcompat-v7:18.0.0' 
} 
+3

Như thế này? http://stackoverflow.com/questions/17479076/android-studio-add-external-project-to-build-gradle – Lesleh

+0

Đã thử không may. bao gồm ': logger' project (': logger'). ProjectDir = new File (settingsDir, '../SysLog') – euantorano

Trả lời

79

Cách đơn giản nhất là để thực hiện MyProject một dự án đa với dự án Logger làm dự án con.

settings.gradle trong MyProject thư mục:

include ":logger" 
project(":logger").projectDir = file("../logger") 

Trong build.gradle của MyProject bây giờ bạn có thể tham khảo lib này như một dự án:

dependencies { 
    compile 'com.android.support:gridlayout-v7:18.0.0' 
    compile 'com.android.support:appcompat-v7:18.0.0' 
    compile project(":logger") 
} 
+0

Cảm ơn, đây chính xác là những gì tôi cần. Dự án đã biên dịch thành công ngay khi tôi thêm vào. – euantorano

+0

Bạn có thể sử dụng giá trị thuộc tính từ tệp gradle.properties của Gradle home directory không? – Rick

+0

Đây chính xác là những gì tôi phỏng đoán tôi có thể làm, và chính xác là câu trả lời tôi đang tìm kiếm :-D – Antinous

3

thử thêm phụ thuộc vào "phụ thuộc" phần toàn cầu, không phải là "android > phụ thuộc ". Trong quá trình phát triển, cấu hình "android" được sử dụng, nhưng không phải để gói thời gian chạy.

dependencies { 
    compile 'com.android.support:gridlayout-v7:18.0.0' 
    compile 'com.android.support:appcompat-v7:18.0.0' 
    compile files("../Logger") 
} 

Nó cũng có thể là đáng giá để xem xét việc thiết lập một cấu hình gradle đa dự án, với một build.gradle và settings.gradle trong thư mục cha chia sẻ như ở đây: http://www.gradle.org/docs/current/userguide/multi_project_builds.html

+0

Chỉ cần thử điều đó, không thành công. Vẫn nhận được các lỗi tương tự. – euantorano

3

Android Studio 2.2.3:

Thêm vào settings.gradle.

include ':app', ':new_lib' 
project(':new_lib').projectDir = new File('../new_lib/app') 
  • Đường dẫn phải tương đối từ thư mục gốc của dự án bạn đang làm việc trên.
  • Mô-đun bạn đang tham chiếu phải có tham chiếu đến thư mục "ứng dụng" của nó.

Sau đó, chỉnh sửa Cấu trúc dự án của bạn | Các mô-đun để thiết lập các phụ thuộc.

+0

Tôi đã thử điều này trong Android Studio nhưng bây giờ dự án gốc của tôi không còn được coi là thư viện và các biến thể xây dựng nữa chỉ hiển thị những gì bạn gọi là ": new_lib" làm mô-đun có sẵn. 'Ứng dụng' ban đầu không còn trong danh sách mô-đun. – ZeroStatic

Các vấn đề liên quan