2015-05-28 18 views
7

Sto cercando di costruire la mia libreria e caricarla nel repository, ma sfortunatamente la generazione gradle fallisce. Ho passato diverse ore a cercare di correggere questo errore, ma nulla di quello che ho provato non ha aiutato.
Ecco il mio build.gradle dalla directory del progetto root.Manca mancare Android.compileSdkVersion! error gradle build

buildscript { 
    repositories { 
     jcenter() 

    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.2.3' 
     classpath 'com.github.dcendents:android-maven-plugin:1.2' 
     classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.1" 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

E build.gradle dal mio modulo directory

apply plugin: 'com.android.library' 
apply plugin: "com.jfrog.bintray" 
apply plugin: 'com.github.dcendents.android-maven' 
version = "1.0.0" 
android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 
def siteUrl = 'https://github.com/CROSP/AndroidHorizontalRecyclerView'  // Homepage URL of the library 
def gitUrl = 'https://github.com/CROSP/AndroidHorizontalRecyclerView.git' // Git repository URL 
group = "com.github.crosp.horizontalrecyclerview"      // Maven Group ID for the artifact 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'org.jsoup:jsoup:1.8.1' 
    compile 'com.android.support:appcompat-v7:22.1.1' 
    compile 'com.android.support:recyclerview-v7:21.0.3' 

} 
install { 
    repositories.mavenInstaller { 
     // This generates POM.xml with proper parameters 
     pom { 
      project { 
       packaging 'aar' 

       // Add your description here 
       name 'Android Horizontal Recycler View with Headerr' 
       description = 'Android Horizontal Recycler View with Header project for displaying horizontal list on Android ' 
       url siteUrl 

       // Set your license 
       licenses { 
        license { 
         name 'The Apache Software License, Version 2.0' 
         url 'http://www.apache.org/licenses/LICENSE-2.0.txt' 
        } 
       } 
       developers { 
        developer { 
         id 'crosp' 
         name 'Alexandr Crospenko' 
         email '[email protected]' 
        } 
       } 
       scm { 
        connection gitUrl 
        developerConnection gitUrl 
        url siteUrl 

       } 
      } 
     } 
    } 
} 

task sourcesJar(type: Jar) { 
    from android.sourceSets.main.java.srcDirs 
    classifier = 'sources' 
} 

task javadoc(type: Javadoc) { 
    source = android.sourceSets.main.java.srcDirs 
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) 
} 

task javadocJar(type: Jar, dependsOn: javadoc) { 
    classifier = 'javadoc' 
    from javadoc.destinationDir 
} 
artifacts { 
    archives javadocJar 
    archives sourcesJar 
} 

Properties properties = new Properties() 
properties.load(project.rootProject.file('local.properties').newDataInputStream()) 

// https://github.com/bintray/gradle-bintray-plugin 
bintray { 
    user = properties.getProperty("bintray.user") 
    key = properties.getProperty("bintray.apikey") 

    configurations = ['archives'] 
    pkg { 
     repo = "maven" 
     // it is the name that appears in bintray when logged 
     name = "crosp" 
     websiteUrl = siteUrl 
     vcsUrl = gitUrl 
     licenses = ["Apache-2.0"] 
     publish = true 
     version { 
      gpg { 
       sign = true //Determines whether to GPG sign the files. The default is false 
       passphrase = properties.getProperty("bintray.gpg.password") //Optional. The passphrase for GPG signing' 
      } 
//   mavenCentralSync { 
//    sync = true //Optional (true by default). Determines whether to sync the version to Maven Central. 
//    user = properties.getProperty("bintray.oss.user") //OSS user token 
//    password = properties.getProperty("bintray.oss.password") //OSS user password 
//    close = '1' //Optional property. By default the staging repository is closed and artifacts are released to Maven Central. You can optionally turn this behaviour off (by puting 0 as value) and release the version manually. 
//   } 
     } 
    } 
} 

Inoltre ho aggiunto alcune configurazioni nel mio file di local.properties

sdk.dir=/home/crosp/Android/Sdk 
bintray.user=#### 
bintray.apikey=#### 

bintray.gpg.password=#### 
bintray.oss.user=#### 
bintray.oss.password=#### 

Il problema è che ottengo seguente errore dopo gradle bintrayUpload.

Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence. 
java.lang.IllegalArgumentException: android.compileSdkVersion is missing! 
     at com.android.build.gradle.internal.SdkHandler.initTarget(SdkHandler.java:80) 

E alla fine dell'uscita messaggio di errore ottengo seguente

* Where: 
Build file '/home/crosp/AndroidStudioProjects/HorizontalList/horizontalrecyclerview/build.gradle' line: 3 

* What went wrong: 
A problem occurred evaluating project ':horizontalrecyclerview'. 
> org/gradle/api/publication/maven/internal/DefaultMavenFactory 

risposta

0

Questo errore in relazione con la "compilazione versione SDK" è perché si sta utilizzando Gradle 2.4

loro arrivo in Android Preferenze di Studio e ricerca di Gradle. Se disponi di "Usa distribuzione gradle locale", verifica la versione e prova a passare a "Usa predefinito gradle wrapper (consigliato)"

Ora se non funziona. Controlla la struttura del tuo progetto, nell'opzione "Progetto" probabilmente sta usando la "versione Gradle 2.4" quindi impostata su 2.2.1

Nel peggiore dei casi forse stai usando la tua console, quindi esegui: gradle --version e controlla la tua versione gradle.

Cerca di evitare di utilizzare "Gradle 2.4" perché ha problemi relativi ad alcune attività in Android Studio.

Problemi correlati