2016-08-18 23 views
7

cập nhật Android Studio từ 2.1.2 -> 2.1.3 sáng nay và nhận được lỗi đồng bộ gradle sau:Android Studio 2.1.3 - DefaultSourceDirectorySet vấn đề

Error:Unable to find method 'org.gradle.api.internal.file.DefaultSourceDirectorySet.(Ljava/lang/String;Ljava/lang/String;Lorg/gradle/api/internal/file/FileResolver;)V'.

Tôi khá chắc chắn rằng nó có liên quan đến những điều sau đây thư viện dự án:

buildscript { 
    repositories { 
     mavenCentral() 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.1.3' 
     classpath 'com.google.protobuf:protobuf-gradle-plugin:0.7.0' 
    } 
} 

apply plugin: 'com.android.library' 
apply plugin: 'com.google.protobuf' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "22.0.1" 
    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     debug { 
      minifyEnabled false 
     } 
    } 
    sourceSets { 
     main { 
      proto { 
       srcDir 'src/main/protos' 
      } 
      java { 
       srcDir 'src/main/java' 
      } 
      manifest { 
       srcFile 'src/main/AndroidManifest.xml' 
      } 
     } 
    } 
} 


repositories { 
    mavenCentral() 
} 
dependencies { 
    compile 'com.android.support:support-v4:+' 
    compile 'com.android.support:recyclerview-v7:+' 
    compile 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-2' 
    compile project(':wallpaperpicker-resources') 
} 
protobuf { 
    // Configure the protoc executable 
    protoc { 
     // Download from repositories 
     artifact = 'com.google.protobuf:protoc:3.0.0-alpha-3' 
    } 
} 

Screenshot

Hình như phiên bản plugin gradle trước đây của tôi là 1.3.0 - tôi đang thiếu một số thay đổi đã xảy ra có liên quan đến nguồn Đặt khối?

+0

Bạn đã cố gắng dọn dẹp dự án, xóa bộ nhớ cache gradle? –

+1

Tôi rm -rf'ed /.gradle, làm sạch dự án và bộ nhớ cache không hợp lệ. –

Trả lời

3

câu trả lời ced đã dẫn tôi đến giải pháp. Có vẻ như các phiên bản mới hơn của gradle, plugin Android Studio gradle và plugin google protoc sẽ không phát huy hiệu quả. Tôi đã phải nâng cấp các plugin google protoc như ced lưu ý - nhưng đây là một khởi hành lớn từ 0.7.0. Trình biên dịch proton javanano không còn được khuyến nghị nữa (và tôi không thể làm nó hoạt động được). Đây là giải pháp javalite mà tôi đã sử dụng.

buildscript { 
    repositories { 
     mavenCentral() 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.1.3' 
     classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0' 
    } 
} 

apply plugin: 'com.android.library' 
apply plugin: 'com.google.protobuf' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 
    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     debug { 
      minifyEnabled false 
     } 
    } 
    sourceSets { 
     main { 
      proto { 
       srcDir 'src/main/proto' 
      } 
      java { 
       srcDirs = ['src/main/java','$buildDir/generated-sources/release/javalite'] 
      } 
      manifest { 
       srcFile 'src/main/AndroidManifest.xml' 
      } 
     } 
    } 
} 


repositories { 
    mavenCentral() 
} 
dependencies { 
    compile 'com.android.support:support-v4:23.2.0' 
    compile 'com.android.support:recyclerview-v7:23.2.0' 
    compile 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-2' 
    compile 'com.google.protobuf:protoc-gen-javalite:3.0.0' 
    compile 'com.google.protobuf:protobuf-lite:3.0.0' 
    compile project(':wallpaperpicker-resources') 
} 

protobuf { 
    generatedFilesBaseDir = "$projectDir/build/generated-sources" 
    protoc { 
     // Download from repositories 
     artifact = 'com.google.protobuf:protoc:3.0.0' 
    } 
    plugins { 
     javalite { 
      // The codegen for lite comes as a separate artifact 
      artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0' 
     } 
    } 
    generateProtoTasks { 
     all().each { task -> 
      task.plugins { 
       javalite { 
        //remove some of the javalite extra packaging 
        outputSubDir = '' 
       } 
      } 
     } 
    } 
} 

apply plugin: 'idea' 

idea { 
    module { 
     sourceDirs += file("$buildDir/generated-sources/release/javalite"); 
    } 
} 
6

Cố gắng cập nhật các phiên bản protobuf: classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0'

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