Quando crio meu aplicativo, recebo o seguinte erro:
Erro: Falha na execução da tarefa ': app: transformResourcesWithMergeJavaResForDebug'. Foi encontrado mais de um arquivo com o caminho independente do SO 'META-INF / LICENSE'
Este é o meu arquivo build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "cn.sz.cyrus.kotlintest"
minSdkVersion 14
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
javaCompileOptions{
annotationProcessorOptions{
includeCompileClasspath = true
}
}
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
/* exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'*/
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
compile 'com.github.GrenderG:Toasty:1.2.5'
compile 'com.orhanobut:logger:1.15'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.umeng.analytics:analytics:latest.integration'
compile 'ai.api:libai:1.4.8'
compile 'ai.api:sdk:2.0.5@aar'
// api.ai SDK dependencies
compile 'com.google.code.gson:gson:2.8.0'
compile 'commons-io:commons-io:2.4'
compile 'com.android.support:multidex:1.0.1'
}
Quando adiciono esse código ao meu arquivo build.gradle,
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
Este erro seria resolvido, mas outro problema acontecerá. Como isso:
java.lang.NoClassDefFoundError: com.squareup.leakcanary.internal.HeapAnalyzerService
at com.squareup.leakcanary.LeakCanary.isInAnalyzerProcess(LeakCanary.java:145)
at cn.sz.cyrus.wemz.TestApplication.onCreate(TestApplication.kt:32)
Quem tem idéias de como resolver isso?
android
gradle
build.gradle
Cyrus
fonte
fonte
Respostas:
Você pode adicionar isso
yourProject/app/build.gradle
dentroandroid{}
fonte
No meu caso, bastava excluir apenas o caminho 'META-INF / DEPENDENCIES' por
yourProject/app/build.gradle
dentroandroid{}
. Aqui estáE então limpe o projeto e reconstrua o projeto.
fonte
As soluções aqui não me ajudaram, mas esse link sim.
Se você tem uma biblioteca que está adicionando alguns arquivos .so do Android - como
libassmidi.so
oulibgnustl_shared.so
-, você precisa dizer ao gradle para escolher apenas um ao empacotar, caso contrário, você terá o conflito.Eu estava tendo esse problema ao usar um aplicativo React Native como uma biblioteca em um projeto Android. Espero que ajude
fonte
Teve mensagem semelhante
Para resolvê-lo, tive que ativar a visualização de pacotes ( 1 ) no Android Studio, navegar pela árvore até as bibliotecas e localizar as duplicatas ( 2 )
Em seguida, ctrl + alt + f12 (ou menu RMB) ( 3 ) - e encontrou as bibliotecas que causaram o problema. Criou uma lista de arquivos dentro das bibliotecas que causaram os problemas e os escreveu no arquivo build.gradle do aplicativo na seção android . Outra opção é lidar com a biblioteca, contendo arquivos duplicados
fonte
Basicamente, quando gradle reúne o arquivo apk, ele copia o conteúdo de todas as dependências de compilação. É inteligente o suficiente para ver que há um arquivo duplicado ... vindo de dois arquivos jar diferentes. Pode ser qualquer arquivo como a.txt ou META-INF / DEPENDENCIES. Talvez seja melhor excluir esses arquivos usando o abaixo, caso o arquivo esteja presente apenas para fins informativos.
Ou, se for o caso, o arquivo é um arquivo obrigatório, como um arquivo de classe, duplicado em duas dependências de jar relacionadas entre si, é melhor encontrar alternativas para esses jars, no sentido de uma versão mais compatível.
fonte
Eu estava tendo o mesmo problema e tentei isso
Solução: tudo o que você precisa fazer para corrigir isso é adicioná-lo à seção android {} no 'build.gradle' do seu aplicativo
fonte
Isso acontece ao usar
org.jetbrains.kotlinx: kotlinx-coroutines-core: 1.2.0
E é corrigido na próxima versão
org.jetbrains.kotlinx: kotlinx-coroutines-core: 1.2.1
fonte
Eu encontrei o mesmo erro e descobri que o resultado de módulos diferentes continha as mesmas classes de pacotes diferentes .
por exemplo, um pacote androidx usado e o outro pré-androidx
Eu o resolvi migrando o módulo pré-androidx para androidx usando o recurso interno do Android Studio: "Refatorar -> Migrar para Androidx ..." sem excluir nada.
Para sua situação, você pode verificar se há alguma incompatibilidade de dependência entre os módulos.
fonte
Li todas as respostas relacionadas à obtenção desta mensagem em
Android Studio
:mas, neste caso, excluir classes não é necessário, precisamos excluir apenas
'META-INF/DEPENDENCIES'
, isso pode ser feito dentro de/app/build.gradle
:fonte
Atualizei o Studio do Java 7 para o Java 8 e esse problema ocorreu. Então eu resolvi assim:
fonte
No meu aplicativo, eu estava adicionando as dependências do jar desta forma:
Mas percebi que eles já foram adicionados por causa da seguinte primeira linha nas dependências:
Essa linha adiciona todos os jars na pasta lib à dependência do aplicativo.
Portanto, após remover a dependência extra
implementation files('libs/json-simple-1.1.1.jar')
está funcionando bem.
fonte
Eu enfrentei um problema semelhante ao trabalhar em um ambiente de aplicativos de vários módulos:
Esse problema estava sendo relatado por vários desses módulos meus e nenhuma das soluções acima a corrigia. Acontece que eu estava usando a versão Coroutines 1.3.6, que parecia incorporar o META-INF / AL2.0, que já estava incorporado por outra das bibliotecas que eu estava usando. Para corrigi-lo, adicionei o seguinte trecho de código ao build.gradle do módulo que estava com falha:
Dado que isso estava acontecendo em vários módulos, mudei esse
resolutionStrategy
código para o meu nível de projeto build.gradle. Tudo funcionou depois disso.fonte
Estou com o mesmo problema e tentei isso
Erro: foi encontrado mais de um arquivo com o caminho independente do SO 'META-INF / library_release.kotlin_module'
Solução:
fonte
Eu tive um problema parecido. eu estava recebendo a mensagem de erro -
Conforme indicado em algumas das respostas acima, o uso do código abaixo funciona
Mas eu estava recebendo esse erro para 20 arquivos diferentes, então, após excluir 20 arquivos, parei e tentei encontrar uma solução decente. Eu também tinha encontrado o
Eu finalmente consegui resolver isso.
Em primeiro lugar (como no meu caso, WillCloseWhenClosed.java era o arquivo duplicado), no android studio você tem a opção de 'pesquisar em todos os lugares'. Escreva e procure o arquivo lá. Lá encontrei várias instâncias deste arquivo. Então, eu cliquei nas duas instâncias e vi a localização delas clicando com o botão direito do mouse no arquivo e vendo sua localização quando elas foram abertas no android studio.
Em segundo lugar, descobri que tinha algumas dependências no arquivo gradle. Eu estava usando o código abaixo
e também tive os mesmos pacotes zip no local: \ Users \ user \ AndroidStudioProjects \ git \ appname \ app \ libs \ google-http-client-1.23 !.
Então isso foi redundante e é por isso que o gradle está encontrando 2 arquivos. Então eu apaguei meus pacotes zip e ele resolveu os erros para mim. Tenha cuidado ao fazer isso. Você precisa descobrir qual é o arquivo ou pacote correto a ser excluído.
Em terceiro lugar, o gradle também faz um zip desses arquivos de erro neste local (pelo menos para mim) - C: \ Arquivos de programas \ Android \ Android Studio \ gradle \ m2repository \ com \ google \ code \ findbugs \ jsr305 \ 1.3. 9 \ jsr305-1.3.9.jar!
então eu fui e excluí o arquivo jsr305-1.3.9.jar daqui também.
Se você ainda está confuso, basta ir na 'pesquisa em todos os lugares' no android studio, encontrar instâncias do seu arquivo lá e você teria que excluir um deles. Leve o seu tempo e descobrir qual.
fonte
Adicionando
android.useAndroidX = true
android.enableJetifier = true
para gradle.properties trabalharam para mim.
fonte
Eu enfrentei esse problema, primeiro com algumas bibliotecas nativas (arquivos .so) e depois com arquivos java / kotlin. Aconteceu que eu estava incluindo uma biblioteca da fonte, bem como referenciando artefatos por meio de uma dependência transitiva. Verifique sua árvore de dependência para ver se existem entradas redundantes. Use
./gradlew :app:dependencies
para obter a árvore de dependência. Substitua "app" pelo nome do módulo, se o nome do módulo principal for diferente.fonte
Tente alterar a versão mínima do Android> = 21 no seu build.gradle android {}
fonte
Adicione os seguintes arquivos gradel no nível do aplicativo no Android {}
fonte
Tente remover o multidex da configuração padrão e verifique o log de erros de construção. Se esse log estiver relacionado à classe INotification. Use isso no android {}
Isso me ajuda.
fonte
Para mim, abaixo a solução funcionou, você pode obter ajuda também, escrevi abaixo da linha no arquivo gradle do aplicativo
fonte
Eu estava conectado, mas meu projeto já foi migrado para o AndroidX, mas depois de migrar para o androidX novamente, ele refatorou parte do meu projeto e o problema foi resolvido.
fonte
Adicione o código abaixo em app.gradle, isso resolverá todos os erros de dependência da biblioteca
fonte
para mim, era .md em vez de .txt
fonte
Em muitas das respostas sobre SO neste problema, foi sugerido adicionar
exclude 'META-INF/DEPENDENCIES'
e excluir outras. No entanto, nenhum desses funcionou para mim. No meu caso, o cenário era assim:Eu adicionei isso nas dependências:
E também adicionei isso em gradle.properties:
Eu adicionei os dois, porque estava recebendo o erro de compilação 'não é possível encontrar a classe de símbolo Nullable' e foi sugerido como solução para isso em algumas respostas, como aqui
No entanto, acabei encontrando um erro:
Não
exclude
estava funcionando para mim. Finalmente, acabei de remover as linhas adicionadas acima, por suspeita (Resolvido 'não pode encontrar a classe de símbolo Nullable' de alguma maneira alternativa) e, finalmente, me livrei desse erro de compilação "Mais de um arquivo foi encontrado com o SO ...". Eu perdi horas minhas. Mas finalmente se livrou disso.fonte
Você só precisa invalidar o cache e reiniciar , depois que o Clean Project
fonte