Tôi đã xem các câu hỏi (Android Studio combine 2 .aar into one và những người khác) được đăng bởi nhiều nhà phát triển khác nhau nhưng tôi chưa thấy phản hồi dứt khoát cho phép tôi tạo AAR bao gồm 1 hoặc nhiều AAR hoặc JAR. có thể làm với các JAR vì tôi không cần chia sẻ bất kỳ tài nguyên nào, chỉ các lớp). Đây là app.gradle cho dự án thư viện của tôi:Tạo AAR với nhiều AAR/JAR
apply plugin: 'com.android.library'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
minSdkVersion 16
targetSdkVersion 21
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.google.code.gson:gson:2.1'
compile ('libs/eventbus.jar')
compile project(':core-release')
compile project(':midware-release')
}
Một lần nữa, ứng dụng này là một dự án thư viện mà cần hai dự án thư viện khác ('lõi phát hành', 'midware phát hành') và trong khi tôi đã có thể để tạo ra một tệp AAR mà tôi có thể sử dụng trong ứng dụng của mình, ứng dụng không thể tìm thấy các lớp dự án thư viện phụ thuộc như vậy, tôi phải thêm hai AAR của dự án thư viện vào ứng dụng của mình.
Đây là dự án ứng dụng app.gradle (mà không cần thêm các lọ bằng tay) mà không thể tìm thấy lớp các dự án phụ thuộc:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.app.sample"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile files('libs/eventbus.jar')
compile project(':sdk3-debug')
}
Tôi không nghĩ rằng tập tin AAR thư viện dự án được kéo trong các dự án phụ thuộc (AAR hoặc JAR) và do đó ứng dụng không thể tìm thấy các lớp.
Tôi đã đọc về phụ thuộc transitive, nhưng tôi không thể tìm thấy triển khai ví dụ có thể giúp ích cho trường hợp của tôi.
Tôi đã thử nhưng tôi không thể vượt qua được 'Không có thuộc tính: chuyển tiếp cho lớp: org.gradle.api.internal.project.DefaultProject_Decorated' lỗi. Thậm chí chuyển sang trình bao bọc gradle mặc định trong Build Tools -> Gradle settings từ phân phối gradle cục bộ không giúp được –
Bạn có thể thử: biên dịch (project (': sdk3-debug')) {transitive = true} –
hạnh phúc bây giờ. Tuy nhiên, dự án ứng dụng của tôi không thể tìm thấy các lớp trong dự án thư viện (phần mềm trung gian) nằm trong tệp AAR. Các lớp học trực tiếp trong tệp AAR có thể truy cập được. Như tôi đã đề cập, tệp AAR của tôi có hai dự án phụ thuộc (lõi và phần mềm trung gian). –