support - multidex version android




Erro: Falha na execução da tarefa ': app: transformClassesWithDexForDebug' (18)

O erro

Erro: Falha na execução da tarefa ': app: transformClassesWithDexForDebug'. com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command' / usr / lib / jvm / java-8-oracle / bin / java '' finalizado com valor de saída diferente de zero 1

Meu arquivo de classificação do aplicativo:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    defaultConfig {
        applicationId 'Hidden application ID'
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        disable 'InvalidPackage'
    }
    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }
    productFlavors {
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'
    compile 'com.google.android.gms:play-services:8.1.0'
    compile 'com.facebook.android:facebook-android-sdk:4.7.0'
    compile 'com.googlecode.libphonenumber:libphonenumber:7.2.1'
    compile 'com.getbase:floatingactionbutton:1.10.1'
    compile 'com.android.support:preference-v7:23.1.1'
}

Durante a depuração, se eu definir minifyEnabled como true, ele será compilado. No entanto, não consigo depurar meu aplicativo.

Eu verifiquei esta outra pergunta: Falha na execução da tarefa ': app: transformClassesWithDexForDebug' ao implementar o login do Google para Android , mas existe apenas uma resposta e a implementação não resolve o problema infelizmente.

AFAIK, o erro foi causado devido à adição de muitas dependências Gradle, mas posso estar errado (realmente espero estar errado, porque todos esses pacotes são realmente importantes!).

Por favor, ajude-me a resolver este erro. Muito obrigado!


  1. Executar: cordova plugin rm cordova-plugin-compat --force
  2. Executar: plugin cordova add [email protected]
  3. Alteração: config.xml na pasta do projeto, use "6.2.3" e não "^ 6.2.3", exclua a pasta plataformas / android, execute novamente o cordova prepare android e cordova build android

A solução que funcionou para mim pessoalmente foi:

no build.gradle

defaultConfig {
        multiDexEnabled true
    }

 dexOptions {
        javaMaxHeapSize "4g"
    }

Apenas corrija as dependências dos serviços do Google Play:

Você está incluindo todos os serviços de reprodução em seu projeto. Adicione apenas aqueles que você deseja.

Por exemplo, se você estiver usando apenas mapas e login do g +, altere

 compile 'com.google.android.gms:play-services:8.1.0'

para

compile 'com.google.android.gms:play-services-maps:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'

Do documento:

Nas versões dos serviços do Google Play anteriores à 6.5, era necessário compilar o pacote inteiro de APIs no seu aplicativo. Em alguns casos, isso tornou mais difícil manter o número de métodos em seu aplicativo (incluindo APIs da estrutura, métodos de biblioteca e seu próprio código) abaixo do limite de 65.536.

A partir da versão 6.5, você pode compilar seletivamente APIs de serviço do Google Play no seu aplicativo. Por exemplo, para incluir apenas as APIs do Google Fit e Android Wear, substitua a seguinte linha no arquivo build.gradle:
compile 'com.google.android.gms: play-services: 8.3.0'
com estas linhas:

compilar 'com.google.android.gms: play-services-fitness: 8.3.0'
compile 'com.google.android.gms: play-services-wearable: 8.3.0'

Lista completa pode ser encontrada aqui .


Este é o problema do Multidex. Você pode tentar remover algum jar ou pode tentar o seguinte: http://developer.android.com/tools/building/multidex.html#mdex-gradle no aplicativo build.gradle:

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

No seu manifesto:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

Eu tive esse erro ao executar um projeto Ionic em um dispositivo Android e o resolvi removendo e adicionando a plataforma Android:

ionic cordova platform remove android
ionic cordova platform add android

Eu tive esse problema ao delegar minha tarefa de compilação ao Google Compute Engine via SSH. A natureza desse problema é um erro de memória, conforme indicado pelo log de falha; especificamente, ele é lançado quando o Java fica sem memória virtual para trabalhar durante a construção.

Importante: Quando o gradle falha devido a esse erro de memória, os daemons do gradle permanecem em execução muito tempo após a falha da sua tarefa de compilação. Qualquer tentativa de construir usando gradle novamente alocará um novo daemon gradle. Você deve garantir que você descarte adequadamente todas as instâncias gradlew --stop usando gradlew --stop .

Os logs de falha hs_error_pid indicam as seguintes soluções alternativas:

# There is insufficient memory for the Java Runtime Environment to continue.
# Possible reasons:
#   The system is out of physical RAM or swap space
#   In 32 bit mode, the process size limit was hit
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Use 64 bit Java on a 64 bit OS
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=

Descobri que, depois de aumentar os recursos de tempo de execução da máquina virtual , esse problema foi resolvido.


Eu tive um erro semelhante. Corrigi-o apenas mudando o diretório. Clonando meu projeto novamente do meu repositório git, importando-o para o android studio e construindo-o. Parece que um dos diretórios / arquivos gerados pelo Android Studio ao criar seu projeto pode ter sido corrompido. Excluir todos os arquivos gerados pelo Android Studio no seu projeto ou fazer o que eu fiz pode resolver o problema. Espero que isto ajude.


Experimentar

dexOptions {
    javaMaxHeapSize "4g"
    preDexLibraries = false
}

Eu não sei o motivo. Algo sobre preDexLibraries : https://sites.google.com/a/android.com/tools/tech-docs/new-build-system/tips

De acordo com @ lgdroid57:

O recurso a seguir deve ajudar a explicar o que esse código faz: link ( http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.DexOptions.html ) Propriedade | Descrição javaMaxHeapSize | Define o valor -JXmx * ao chamar dx. O formato deve seguir o padrão 1024M. preDexLibraries | Se pré-dex bibliotecas. Isso pode melhorar compilações incrementais, mas compilações limpas podem ser mais lentas.


Mova a declaração do plug-in de aplicação na parte inferior do arquivo:

aplique o plug-in: 'com.google.gms.google-services'


Mudando

compilar 'com.google.android.gms: play-services: 8.1.0'

apenas para os arquivos necessários, o problema pode ser resolvido Esse problema é gerado devido ao excesso de arquivos no arquivo build.gradle.


Não há necessidade de multitex. Para o projeto "antigo" aberto no Android Studio 2.1, ele estava alterando a versão do plugin gradle de 1.5.0 para 2.1.0 que corrigiu o problema para mim.

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
    }
}

Para mim, fechar todos os outros Android Studio resolveu o problema.

Eu abri 3 estúdios do Android quando estava recebendo o erro; depois de fechar o 2, não recebi nenhum erro.

Não é necessário adicionar nenhum código relacionado ao multiDex!


Se o java 8 ou superior for usado, o problema é que as bibliotecas usadas são incompatíveis com o java 8. Portanto, para resolver isso, adicione estas duas linhas ao build.gradle do seu aplicativo e todos os submódulos, se houver. (O Android studio mostra claramente como fazer isso na mensagem de erro)

targetCompatibility = '1.7' sourceCompatibility = '1.7'


Tente adicionar multiDexEnabled true ao arquivo build.gradle aplicativo.

  defaultConfig {
    multiDexEnabled true
}

Vá para Build ->

Projeto Limpo ->

Executar projeto: concluído

trabalhando no android 5.1 para mim


Vá para Build -> Clean e execute seu aplicativo novamente


adicione multiDexEnabled true no default config file de default config file do build.gradle como este

    defaultConfig {
        multiDexEnabled true
       }

basta remover a pasta de build em /android e /android/app

e construa novamente com react-native run-android





android-multidex