2016-08-18 18 views
7

Aktualizacja Android Studio z 2.1.2 -> 2.1.3 rano i odbieranie następujące Gradle błąd synchronizacji:Android Studio 2.1.3 - DefaultSourceDirectorySet problem

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

Jestem całkiem pewien, że to jest związane z następującymi projekt biblioteki:

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

Wygląda jak moja poprzednia wersja wtyczki Gradle było 1.3.0 - jestem brakuje jakiejś zmiany, które nastąpiły powiązany ze źródłem Ustawia blok?

+0

Czy próbowałeś wyczyścić projekt, wyczyścić pamięć podręczną gradle? –

+1

I rm -rf'ed /.gradle, wyczyścił projekt i unieważnił pamięć podręczną. –

Odpowiedz

3

ced na odpowiedź doprowadziła mnie do roztworu. Wygląda na to, że nowsze wersje gradle, plugin Android Studio grad i wtyczka google protoc nie będą ładnie odtwarzane. Musiałem zaktualizować wtyczkę google protoc tak, jak to zauważyłem ced - ale było to duże odejście od 0.7.0. Kompilator protokołu javanano nie jest już zalecany (i nie mogłem go w ogóle uruchomić). To jest rozwiązanie javalite, którego użyłem.

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

Spróbuj zaktualizować wersję Protobuf: classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0'