Tôi đang cố gắng xây dựng thư viện android sử dụng thư viện 'lõi' của java (myLibrary-core
). Tôi đã gặp vấn đề với phụ thuộc của tôi để hiển thị trong tệp pom được tạo của tôi, nhưng tôi (nghĩ rằng tôi) đã sửa nó bằng câu trả lời trong câu hỏi này: Gradle not including dependencies in published pom.xmlNhập thư viện android của tôi vào một ứng dụng không được nhận dạng là thư viện
Tôi đang cố gắng giải quyết tại sao nhập thư viện của mình vào ứng dụng riêng biệt cho lỗi này. Đây là lỗi tôi nhận được khi tôi nhập viện vào một dự án như một sự phụ thuộc gradle:
Error:Module version com.example:myLibrary:0.1.0 depends on libraries but is not a library itself
Đây là build.gradle tôi:
apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.library'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.+'
}
}
apply plugin: 'maven-publish'
group = 'com.example'
version = '0.1.0'
android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
defaultConfig {
applicationId "com.example.android"
minSdkVersion 11
targetSdkVersion 19
versionCode 1
versionName "0.1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/DEPENDENCIES'
}
}
dependencies {
// compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:20.0.0'
compile 'com.example:myLibrary-core:0.1.2'
compile 'com.android.support:support-v13:20.0.0'
compile 'com.google.android.gms:play-services:+'
}
// build JAR file
task androidReleaseJar(type: Jar, dependsOn: assembleRelease) {
from "$buildDir/intermediates/classes/release/"
}
publishing {
publications {
maven(MavenPublication) {
artifact androidReleaseJar {
classifier "sources"
}
//The publication doesn't know about our dependencies, so we have to manually add them to the pom
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
//Iterate over the compile dependencies (we don't want the test ones), adding a <dependency> node for each
configurations.compile.allDependencies.each {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
}
}
}
}
}
}
này tạo ra các tập tin pom:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>myLibrary</artifactId>
<version>0.1.0</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>appcompat-v7</artifactId>
<version>20.0.0</version>
</dependency>
<dependency>
<groupId>com.example</groupId>
<artifactId>myLibrary-core</artifactId>
<version>0.1.2</version>
</dependency>
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-v13</artifactId>
<version>20.0.0</version>
</dependency>
<dependency>
<groupId>com.google.android.gms</groupId>
<artifactId>play-services</artifactId>
<version>+</version>
</dependency>
</dependencies>
</project>
Điều kỳ lạ là nếu tôi xóa các dịch vụ phát, hỗ trợ-v13 và appcompat-v7, lỗi sẽ biến mất. Tôi không thể nghĩ ra bất cứ điều gì khác để thử vì vậy tôi rất vui khi thử bất cứ đề nghị nào được thực hiện.
Tôi biết cách làm điều này với adl eclipse. alt-nhập vào từng dự án. Thư viện nhấp chuột islibary và dự án khác bạn bấm vào dự án thư viện. – danny117
@ danny117 Điều này dường như không liên quan đến tình hình của tôi. Tệp pom có được tạo đúng cách không và bạn có thể nhập dự án thư viện của mình trong một ứng dụng qua gradle không? – jonalmeida
Tôi thực sự chỉ biết một phương pháp cho nhật thực. Khi android studio hết beta, tôi sẽ xem xét nó. Hãy xem ở đây thiết lập gradle với Android Studio cho một dự án thư viện. http://developer.android.com/sdk/installing/studio-build.html – danny117