2015-05-28 25 views
8

Tôi vẫn đang cố gắng để có được công việc kịch bản gradle của tôi, tôi đã expolered tất cả các bản ghi và có vẻ như có một số lớp học là mất tích. Đây là tin nhắn.Không thể xây dựng dự án thư viện Bintray Gradle - ClassNotFoundException

org.gradle.api.GradleScriptException: A problem occurred evaluating project ':horizontalrecyclerview'. 

Caused by: java.lang.NoClassDefFoundError: org/gradle/api/publication/maven/internal/DefaultMavenFactory 
     at org.gradle.api.plugins.AndroidMavenPlugin.apply(AndroidMavenPlugin.java:88) 
     at org.gradle.api.plugins.AndroidMavenPlugin.apply(AndroidMavenPlugin.java:57) 
     at org.gradle.api.internal.plugins.ImperativeOnlyPluginApplicator.applyImperative(Imper 

Caused by: java.lang.ClassNotFoundException: org.gradle.api.publication.maven.internal.DefaultMavenFactory 
     ... 51 more 

Đây là build.gradle của tôi.

apply plugin: 'com.android.library' 
apply plugin: 'com.github.dcendents.android-maven' 
apply plugin: 'com.jfrog.bintray' 
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. 
//   } 
     } 
    } 
} 

Có thể ai đó đã gặp sự cố như vậy hoặc biết cách giải quyết? Xin vui lòng giúp đỡ, bởi vì tôi không thể làm cho nó hoạt động cả ngày rồi. Thx trước.

+0

Dường như này lớp học đã bị xóa. Cố gắng để bump phiên bản gradle. – Opal

Trả lời

14

Tôi đang làm điều tương tự (tải lên aar của tôi để bintray) và tôi có cùng một vấn đề.

Tôi biết rằng nó đang xảy ra trong thư viện gradle, vì vậy tôi thay đổi verion gradle tôi từ 2.4.0 đến 2.2.1 bằng cách này

File -> Cấu trúc dự án (hoặc kích hoạt phím nóng command + ;) - > nhấp vào Project trong danh sách bên trái trong hộp thoại -> đầu vào 2.2.1 trong hộp văn bản Gradle.

Tôi giải quyết lỗi này bằng cách này. Tìm phần ghi chú trong tệp README.md.

Hy vọng điều này có thể giúp bạn.

ps: Nếu bạn muốn sử dụng gradle 2.4.0, bạn nên cấu hình phiên bản android-maven-plugin để 1.3 trong classpath trong build.gradle gốc của dự án như:

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