2016-08-18 2 views
7

Aktualisiert Android Studio von 2.1.2 -> 2.1.3 an diesem Morgen und Empfangen des folgenden gradle Synchronisierungsfehlers:Android Studio 2.1.3 - DefaultSourceDirectorySet Ausgabe

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

Ich bin mir ziemlich sicher, dass es an folgenden in engen Zusammenhang steht Bibliotheksprojekt:

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

Sieht aus wie meine früheren gradle Plugin-Version 1.3.0 war - bin ich eine Veränderung fehlt, die an der Quelle zugehörigen aufgetreten Setzt Block?

+0

Haben Sie versucht, ein Projekt zu säubern, Graded Cache zu säubern? –

+1

I rm -rf'ed /.gradle, bereinigt das Projekt und ungültig Caches. –

Antwort

3

ced Antwort führte mich zu der Lösung. Es scheint, dass neuere Versionen von Gradle, das Android Studio Gradle-Plugin und das Google-Protoc-Plugin nicht gut spielen würden. Ich musste das Google-Protoc-Plugin updaten, wie ced angemerkt hat - aber das war eine große Abkehr von 0.7.0. Der Javanano-Protoc-Compiler wird nicht mehr empfohlen (und ich konnte ihn überhaupt nicht zum Laufen bringen). Dies ist die Javalite-Lösung, die ich am Ende benutzt habe.

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

Versuchen Sie, die protobuf Version zu aktualisieren: classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0'

Verwandte Themen