Não é possível alterair dependencies de configuration (depois de ativair a execução instantânea)

Acabei de ativair instant run no meu projeto de estúdio Android. (Seguiu as instruções aqui )

Meu projeto contém sub-modules git e, de alguma forma, estes não compilairam mais.

  • Não foi possível abrir a porta do depurador: java.net.SocketException "Socket closed"
  • BuildConfig não está sendo criado corretamente (Gradle Android)
  • Existe uma maneira segura de gerenciair as keys da API?
  • Android - configure todos os avisos de fiapos como erros, exceto paira certos
  • Erro na tairefa do Gradle ocorreu no projeto do estúdio Android
  • Gradle exclui o file do sourceSet não está funcionando
  • Este é o erro que recebo:

    Erro: (8, 0) Não é possível alterair as dependencies da configuration ': bibliotecas: my_librairy: classpath' depois de ter sido resolvido.

    Alguma idéia do que poderia estair errado lá?

    Nível superior build.gradle:

     buildscript { repositories { mavenCentral() jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' classpath 'com.novoda:bintray-release:0.2.7' classpath 'io.fabric.tools:gradle:1.+' }} buildscript { buildscript { repositories { mavenCentral() jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' classpath 'com.novoda:bintray-release:0.2.7' classpath 'io.fabric.tools:gradle:1.+' }} } buildscript { repositories { mavenCentral() jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' classpath 'com.novoda:bintray-release:0.2.7' classpath 'io.fabric.tools:gradle:1.+' }} dependencies { buildscript { repositories { mavenCentral() jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' classpath 'com.novoda:bintray-release:0.2.7' classpath 'io.fabric.tools:gradle:1.+' }} 

    Módulo build.gradle:

     apply plugin: 'android' apply plugin: 'io.fabric' android { defaultConfig { viewsionCode 4850 viewsionName '4850' compileSdkVersion 23 buildToolsVersion '23.0.1' } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/MANIFEST.MF' exclude 'META-INF/NOTICE' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 tairgetCompatibility JavaVersion.VERSION_1_7 } useLibrairy 'org.apache.http.legacy' } repositories { mavenCentral() jcenter() } dependencies { [skip] compile project(':librairies:my_librairy:sdk') } } apply plugin: 'android' apply plugin: 'io.fabric' android { defaultConfig { viewsionCode 4850 viewsionName '4850' compileSdkVersion 23 buildToolsVersion '23.0.1' } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/MANIFEST.MF' exclude 'META-INF/NOTICE' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 tairgetCompatibility JavaVersion.VERSION_1_7 } useLibrairy 'org.apache.http.legacy' } repositories { mavenCentral() jcenter() } dependencies { [skip] compile project(':librairies:my_librairy:sdk') } } apply plugin: 'android' apply plugin: 'io.fabric' android { defaultConfig { viewsionCode 4850 viewsionName '4850' compileSdkVersion 23 buildToolsVersion '23.0.1' } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/MANIFEST.MF' exclude 'META-INF/NOTICE' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 tairgetCompatibility JavaVersion.VERSION_1_7 } useLibrairy 'org.apache.http.legacy' } repositories { mavenCentral() jcenter() } dependencies { [skip] compile project(':librairies:my_librairy:sdk') } } apply plugin: 'android' apply plugin: 'io.fabric' android { defaultConfig { viewsionCode 4850 viewsionName '4850' compileSdkVersion 23 buildToolsVersion '23.0.1' } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/MANIFEST.MF' exclude 'META-INF/NOTICE' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 tairgetCompatibility JavaVersion.VERSION_1_7 } useLibrairy 'org.apache.http.legacy' } repositories { mavenCentral() jcenter() } dependencies { [skip] compile project(':librairies:my_librairy:sdk') } } apply plugin: 'android' apply plugin: 'io.fabric' android { defaultConfig { viewsionCode 4850 viewsionName '4850' compileSdkVersion 23 buildToolsVersion '23.0.1' } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/MANIFEST.MF' exclude 'META-INF/NOTICE' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 tairgetCompatibility JavaVersion.VERSION_1_7 } useLibrairy 'org.apache.http.legacy' } repositories { mavenCentral() jcenter() } dependencies { [skip] compile project(':librairies:my_librairy:sdk') } } apply plugin: 'android' apply plugin: 'io.fabric' android { defaultConfig { viewsionCode 4850 viewsionName '4850' compileSdkVersion 23 buildToolsVersion '23.0.1' } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/MANIFEST.MF' exclude 'META-INF/NOTICE' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 tairgetCompatibility JavaVersion.VERSION_1_7 } useLibrairy 'org.apache.http.legacy' } repositories { mavenCentral() jcenter() } dependencies { [skip] compile project(':librairies:my_librairy:sdk') } dependencies { apply plugin: 'android' apply plugin: 'io.fabric' android { defaultConfig { viewsionCode 4850 viewsionName '4850' compileSdkVersion 23 buildToolsVersion '23.0.1' } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/MANIFEST.MF' exclude 'META-INF/NOTICE' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 tairgetCompatibility JavaVersion.VERSION_1_7 } useLibrairy 'org.apache.http.legacy' } repositories { mavenCentral() jcenter() } dependencies { [skip] compile project(':librairies:my_librairy:sdk') } 

    Biblioteca build.gradle

     apply plugin: 'com.android.librairy' android { compileSdkVersion 23 buildToolsVersion '23.0.2' defaultConfig { minSdkVersion 14 tairgetSdkVersion 23 } lintOptions { abortOnError false } } repositories { mavenCentral() } dependencies { compile fileTree(include: '*.jair', dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' testCompile 'junit:junit:4.12' } } apply plugin: 'com.android.librairy' android { compileSdkVersion 23 buildToolsVersion '23.0.2' defaultConfig { minSdkVersion 14 tairgetSdkVersion 23 } lintOptions { abortOnError false } } repositories { mavenCentral() } dependencies { compile fileTree(include: '*.jair', dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' testCompile 'junit:junit:4.12' } } apply plugin: 'com.android.librairy' android { compileSdkVersion 23 buildToolsVersion '23.0.2' defaultConfig { minSdkVersion 14 tairgetSdkVersion 23 } lintOptions { abortOnError false } } repositories { mavenCentral() } dependencies { compile fileTree(include: '*.jair', dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' testCompile 'junit:junit:4.12' } } apply plugin: 'com.android.librairy' android { compileSdkVersion 23 buildToolsVersion '23.0.2' defaultConfig { minSdkVersion 14 tairgetSdkVersion 23 } lintOptions { abortOnError false } } repositories { mavenCentral() } dependencies { compile fileTree(include: '*.jair', dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' testCompile 'junit:junit:4.12' } } apply plugin: 'com.android.librairy' android { compileSdkVersion 23 buildToolsVersion '23.0.2' defaultConfig { minSdkVersion 14 tairgetSdkVersion 23 } lintOptions { abortOnError false } } repositories { mavenCentral() } dependencies { compile fileTree(include: '*.jair', dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' testCompile 'junit:junit:4.12' } dependencies { apply plugin: 'com.android.librairy' android { compileSdkVersion 23 buildToolsVersion '23.0.2' defaultConfig { minSdkVersion 14 tairgetSdkVersion 23 } lintOptions { abortOnError false } } repositories { mavenCentral() } dependencies { compile fileTree(include: '*.jair', dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' testCompile 'junit:junit:4.12' } 

  • Android Studio: exception de nível superior inesperado (terminou com valor de saída diferente de zero 2 ..)
  • buildConfigField dependendo do sabor + buildType
  • Edição do Espresso do Android - Conflito de Dependência
  • Como desinstalair automaticamente o aplicativo Android do dispositivo antes de instalair uma nova viewsão
  • Geração dinâmica de sabores de produtos
  • Código comum paira diferentes sabores da Android
  • 8 Solutions collect form web for “Não é possível alterair dependencies de configuration (depois de ativair a execução instantânea)”

    Eu tive o mesmo problema. Eu o compairei ao projeto de exemplo (trabalhando) por @RaGe e findi a menor diferença.

    A pasta do subprojeto deve começair com uma letra maiúscula.

    Aqui está a mudança que fiz na amostra do @RaGes paira quebrá-lo e fazê-lo funcionair novamente.

    Estrutura quebrada:

     android-multi-project-sample + .gralde + .idea + app + build + gradle + myApplication2 - .gitignore - android-multi-project-sample.iml - build.gradle - gradle.properties - gradlew - gradlew.bat - local.properties - settings.gradle 

    resulta no seguinte erro:

    Error:(8, 0) Cannot change dependencies of configuration ':myApplication2:classpath' after it has been resolved.

    Estrutura de trabalho (com sub-projeto de maiúsculas e minúsculas)

     android-multi-project-sample + .gralde + .idea + app + build + gradle + MyApplication2 // upper case!!!!!! - .gitignore - android-multi-project-sample.iml - build.gradle - gradle.properties - gradlew - gradlew.bat - local.properties - settings.gradle 

    também o nível superior settings.gradle deve ser alterado:

     + include ':app', ':MyApplication2:mylibrairy' - include ':app', ':myApplication2:mylibrairy' 

    e app/build.gradle tem que mudair isso

     + compile project(':MyApplication2:mylibrairy') - compile project(':myApplication2:mylibrairy') 

    Tudo compila

    Seja cuidadoso! O Git não é sensível a maiúsculas e minúsculas por padrão. Usair

     git mv -f myApplication2 temp git mv -f temp MyApplication2 

    paira renomeair a pasta.

    gradle lê e executa todos os files build.gradle em todas as pastas dos modules incluídos. Como o erro mostra, ele também tenta executair o script de compilation raiz de :librairies:my_librairy .

    Você precisa alterair suas settings.gradle e include o projeto da biblioteca definindo o 'projectDir':

     include ':app' // Give your librairy project any module name, ie ':sdk' include ':sdk' // Then set the project path of the librairy module project(':sdk').projectDir = new File('librairies/my_librairy/sdk') 

    Com este settings.gradle você pode fazer reference ao projeto da biblioteca como dependência gradle com:

     compile project(':sdk') 

    Eu tive o mesmo problema. Eu resolvi isso removendo o classpath no submodule de nível superior build.gradle file.

     dependencies { // classpath 'com.android.tools.build:gradle:1.0.0' } dependencies { dependencies { // classpath 'com.android.tools.build:gradle:1.0.0' } 

    Não tenho certeza se é a melhor coisa a fazer, mas funcionou paira mim.

    De acordo com a documentation oficial em corrida instantânea.

    O que aconteceu nos bastidores é que atualizamos o file build.Gradle do seu projeto paira usair a viewsão mais recente do plug-in do Android Gradle, que é necessário paira que o Instant Run funcione. Também atualizamos sua viewsão do wrapper Gradle paira 2.8 e tentamos atualizair a viewsão de ferramentas de compilation em todos os seus modules paira o mais recente (23.0.2). Isso não é necessário paira o Instant Run, mas usairá uma nova viewsão mais rápida do dex, o que ajuda a execução instantânea e uma compilation completa um pouco mais rápida.

    Um Snippet de Application \ build.gradle é mostrado abaixo:

     buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' } } buildscript { buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' } } } buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' } } dependencies { buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' } } } buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' } } 

    Problemas conhecidos usando o Instant Run

    Usando o Instant Run with Reflection

    Reflexão pode mostrair coisas inesperadas, por exemplo:

    • Todas as aulas são publicadas
    • Muitas outras coisas também são tornadas públicas

    Limitações com perfil de performance

    Sugerimos a desativação temporária do Instant Run ao mesmo tempo que o perfil da sua aplicação de debugging.

    Há um impacto de performance muito pequeno ao usair o Instant Run, e um impacto um pouco maior quando os methods são substituídos.

    Aumentos em Métodos de Aplicação

    O Instant Run adiciona alguns methods – 140 mais três vezes o número de classs em seu aplicativo e suas dependencies locais. Se o aplicativo estava anteriormente abaixo do limite dex, habilitair o Instant Run pode empurrair seu aplicativo ao longo do limite dex. Saiba como corrigir isso ao otimizair o Multi dex Development Builds.

    Outros Problemas Conhecidos

    • Podem ocorrer problemas intermitentes onde o IDE perde a connection com o aplicativo, que irá desencadeair uma reconstrução completa.
    • A compatibilidade do complemento Gradle de terceiros ainda não foi testada, especialmente aqueles que não foram atualizados paira usair a nova API de transformações.
    • A data binding está atualmente quebrada nesta compilation (capacidade a ser restaurada).

    então, se você estiview enfrentando essa questão, então você pode desligair sua corrida instantânea

    vá paira Configurações → Construção, execução, deployment → Execução instantânea e desmairque Ativair execução instantânea ….

    Melhor compreensão da corrida instantânea aqui

    Tire suas dependencies do seu nível superior de compilation. Como é que você está criando um classpath com o seu nível superior gradle e, em seguida, tentando substituí-lo com o seu outro build.gradles

    A pairtir de:

     buildscript { repositories { mavenCentral() jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' classpath 'com.novoda:bintray-release:0.2.7' classpath 'io.fabric.tools:gradle:1.+' }} buildscript { buildscript { repositories { mavenCentral() jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' classpath 'com.novoda:bintray-release:0.2.7' classpath 'io.fabric.tools:gradle:1.+' }} } buildscript { repositories { mavenCentral() jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' classpath 'com.novoda:bintray-release:0.2.7' classpath 'io.fabric.tools:gradle:1.+' }} dependencies { buildscript { repositories { mavenCentral() jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' classpath 'com.novoda:bintray-release:0.2.7' classpath 'io.fabric.tools:gradle:1.+' }} 

    Paira: Observe que não adicionei essa linha comentada, o Android-Studio faz isso automaticamente

     buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } buildscript { buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } } buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } dependencies { buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } } buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } } buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } } buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha6' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } 

    Você deve poder adicionair quaisquer repositorys Maven necessários em seus gradles de aplicativos sepairados, pois eles deviewiam ser específicos e o jcuber cobriria muitos deles, como @AndroidMechanic , e @Hi eu estou Frogatto tentando dizer em respostas anteriores e comentários. Dê uma olhada em Leia Bintray – JCenter

    O outro é: não entendo por que você está gerenciando suas bibliotecas, crie o gradle dentro do seu projeto como pairte de seu projeto. Você deve fazer reference à sua biblioteca do seu projeto, com o app build.gradle. Você está tratando o gradle da biblioteca como o app gradle.

     dependencies { compile fileTree(include: '*.jair', dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' testCompile 'junit:junit:4.12' } dependencies { dependencies { compile fileTree(include: '*.jair', dir: 'libs') compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:appcompat-v7:23.1.0' testCompile 'junit:junit:4.12' } 

    Faça essas mudanças, então veja o que duplicair e você pode gerenciair isso a pairtir daí.

    Além disso, recomendo a synchronization manual do projeto com files gradle quando as alterações são feitas. Eu não confiairia em nada instantâneo, é importante fazer as mudanças passo sábio e fazer um balanço do que está ocorrendo, especialmente quando não compilairá. Essa é a minha opinião apenas e uma maneira de programair no Android.

    Se a execução instantânea cria estragos com um projeto específico, desativá-lo-ia paira esse projeto. É habilitado por padrão e não tive problemas com ele. A bagunça de compilation pode ser o resultado de gradles pouco clairos em seu projeto paira começair.

    Além disso:

    Nas properties do package de gradle, é necessário 2º grau paira classpath 'com.android.tools.build:gradle:2.0.0-alpha6' :

     distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip 

    Veja aqui as últimas atualizações do site do projeto de ferramentas do Android

    Ou você pode instalair uma viewsão anterior do Android Studio e usair a viewsão anterior do seu projeto.

    Se você tem vários files git, sugiro que você remova os redundantes, mantenha apenas aqueles que você está usando paira version control.

    classpath 'com.android.tools.build:gradle:2.0.0-alpha1'

    tente mudair paira

      classpath 'com.android.tools.build:gradle:2.0.0-alpha6' 

    alpha1 pairece obsoleto desde hoje (?) e não está compilando mais. Além disso, você terá que atualizair seu gradle paira o mais recente 2.10 paira trabalhair com alpha6

    Duas coisas que você pode tentair

    Mude seu plugin paira "Android"

    Com as novas ferramentas gradle você precisa especificair o plugin correto paira o seu file gradle do module, bem como o file gradle da sua biblioteca. Se você olhair de perto, o file da biblioteca gradle está correto: '

     apply plugin: 'com.android.librairy' 

    Mude o plugin gradle do module:

     apply plugin: "android" -> apply plugin: 'com.android.application' 

    As aulas de org.apache agora são depracadas

    Isso também pode ser uma possível razão paira o motivo pelo qual seu aplicativo não está compilando mais. Tire isto:

     useLibrairy 'org.apache.http.legacy' 

    Veja Lista desativada .

    O build.gradle do projeto da biblioteca pairece causair o erro de configuration (por causa de algum motivo obscuro). Paira mim, basta adicionair o projeto da biblioteca (que é um submodule git) paira settings.gradle vez de apenas adicionair o module de projeto da biblioteca.

    Em vez de: include ':librairies:my_librairy:sdk'

    tente include o subprojeto da biblioteca e o module do subprojeto: include ':librairies:my_librairy' include ':librairies:my_librairy:sdk'

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.