Bir java kitaplığı 'çekirdek' (myLibrary-core
) kullanan bir android kitaplığı oluşturmaya çalışıyorum. Sorunlarım, oluşturulan pom dosyasımda görünmesi için bağımlılıklarımı almamı sağladı ancak bu soruya verilen yanıtı kullanarak onu düzelttim (düşünüyorum): Gradle not including dependencies in published pom.xmlBir uygulamada benim android kitaplığı alma kitaplığı olarak tanınmıyor
Kitaplığımı neden içe aktardığımı çözmeye çalışıyorum. ayrı bir uygulama bu hatayı verir.
<?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>
: Bu pom dosyası oluşturur
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)
}
}
}
}
}
}
: Bu benim build.gradle olduğunu
Error:Module version com.example:myLibrary:0.1.0 depends on libraries but is not a library itself
: Ben gradle bağımlılık olarak bir projeye kütüphane aldığınızda, bu alıyorum hatadır
Tek sorun, play-services, support-v13 ve appcompat-v7'yi kaldırırsam hata gider. Denemek için başka bir şey düşünemiyorum, bu yüzden yaptığınız herhangi bir öneriyi denemekten mutluluk duyuyorum.
Bunu eclipse adt ile nasıl yapacağımı biliyorum. her bir projeye alt girişi girin. Kütüphane islibary ve diğer proje kütüphane projesini tıklatır. – danny117
@ danny117 Bu durum benim durumumla ilgili görünmüyor. Pom dosyası düzgün bir şekilde üretildi mi ve kütüphane projenizi bir uygulamada gradle ile içe aktarabilirsiniz. – jonalmeida
Aslında sadece tutulma için tek yöntemi biliyorum. Android stüdyosu beta olduğunda ben ona bakacağım. Bir kütüphane projesi için Android Studio'yu bir araya getirerek bir göz atın. http://developer.android.com/sdk/installing/studio-build.html – danny117