Android Studio 2.1.3 – Problema de DefaultSourceDirectorySet
Actualización de Android Studio desde 2.1.2 -> 2.1.3 esta mañana y recibiendo el siguiente error de sincronización gradle:
Error: No se puede encontrar el método 'org.gradle.api.internal.file.DefaultSourceDirectorySet. (Ljava / lang / String; Ljava / lang / String; Lorg / gradle / api / internal / file / FileResolver;) V'.
- New Relic - java.io.IOException: El archivo existe
- Cómo configurar el orden de construcción de la biblioteca en gradle?
- El selector de dispositivos de Android Studio se muestra antes de completar Gradle Build
- Cómo corregir los errores de Gradle Sync al configurar el nuevo React-Native Project para Android e iOS
- Cómo hacer que mi archivo de compilación de Gradle utilice siempre las nuevas herramientas de compilación de Android disponibles
Estoy bastante seguro de que está relacionado con el siguiente proyecto de biblioteca:
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' } }
Parece que mi versión anterior de plugin de gradle fue 1.3.0 – ¿me falta algún cambio que se produjo relacionado con el bloque de sourceSets?
- Configuración de Gradle con biblioteca de módulos múltiples de android
- Gradle - biblioteca duplicados en dependencias
- Gradle Artifactory Plugin - ¿Cómo publicar artefactos de múltiples módulos en un proyecto?
- Android versión sdk en gradle y manifiesto
- Agrega la API de datos de YouTube a Android Studio
- Aviso de Gradle: variant.getOutputFile () y variant.setOutputFile () están obsoletos
- ¿Utiliza Android Studio Gradle Daemon?
- Agregar claves de liberación en el complemento experimental de Gradle para Android
Intente actualizar la versión protobuf: classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0'
La respuesta de ced me llevó a la solución. Parece que las versiones más recientes de gradle, el complemento de gradle de Android Studio y el plugin google protoc no jugarían bien. Tuve que actualizar el google protoc plugin como ced observó – pero esto fue una gran salida de 0.7.0. El compilador de protoc javanano ya no se recomienda (y no pude conseguir que funcione en absoluto). Esta es la solución javalita que acabé usando.
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"); } }
- ¿Cómo debo usar / no usar métodos obsoletos en Android
- ¿Cómo conseguir que Cordova trabaje con Android Studio?