Quando eu executo cordova build android --buildConfig xxxx --release
, obtenho o seguinte erro:
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex
O estranho é que uso duas máquinas macOS para a compilação e recebo esse erro apenas em uma delas para o mesmo código.
Aqui está o resultado de ./gradlew cdvPrintProps
I get nas duas máquinas:
:cdvPrintProps
cdvCompileSdkVersion=26
cdvBuildToolsVersion=27.0.3
cdvVersionCode=null
cdvMinSdkVersion=21
cdvBuildMultipleApks=true
cdvReleaseSigningPropertiesFile=release-signing.properties
cdvDebugSigningPropertiesFile=null
cdvBuildArch=null
computedVersionCode=152045989
computedArmv7VersionCode=1520459892
computedX86VersionCode=1520459894
Abaixo está a lista de plug-ins usados:
$ cordova plugins list
cordova-custom-config 5.0.2 "cordova-custom-config"
cordova-fabric-plugin 1.1.10 "cordova-fabric-plugin"
cordova-open-native-settings 1.5.0 "Native settings"
cordova-plugin-app-event 1.2.1 "Application Events"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-camera 2.4.1 "Camera"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-console 1.1.0 "Console"
cordova-plugin-crosswalk-webview 2.4.0 "Crosswalk WebView Engine"
cordova-plugin-datepicker 0.9.2 "DatePicker"
cordova-plugin-device 2.0.1 "Device"
cordova-plugin-email 1.2.7 "EmailComposer"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-inappbrowser 1.7.2 "InAppBrowser"
cordova-plugin-network-information 1.3.4 "Network Information"
cordova-plugin-secure-storage 2.6.8 "SecureStorage"
cordova-plugin-splashscreen 4.1.0 "Splashscreen"
cordova-plugin-statusbar 2.4.1 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova.plugins.diagnostic 3.9.2 "Diagnostic"
de.appplant.cordova.plugin.local-notification 0.8.5 "LocalNotification"
ionic-plugin-keyboard 2.2.1 "Keyboard"
Como posso resolver este problema?
Respostas:
Basta colocar o seguinte em build-extras.gradle
fonte
build-extras.gradle
no meu projeto um código adicionado à raiz para copiá-lo emhooks\after_platform_add
gist.github.com/charlesbedrosian/…O Google lançou a nova versão 28.0.0-alpha1 de com.android.support:support-v4 que está adicionando 2 novos atributos (android: fontVariationSettings e android: ttcIndex). Alguns dos plug-ins estão usando as bibliotecas de suporte para Android mais recentes, o que resulta em incompatibilidades indesejadas.
Opção 1: Instale o plug- in cordova-android-support-gradle-release .
Plugin bem documentado que "alinha várias versões das bibliotecas de suporte do Android especificadas por outros plug-ins a uma versão específica". Testado sem qualquer comportamento destrutivo.
Leia a documentação para um conjunto completo de opções: Leiame
Opção 2 : adicione o próximo snippet de código em build.gradle em plataformas / android
Aviso: o código em build.gradle será sobrescrito se você remover / adicionar a plataforma Android. Se você não quiser usar o plugin por algum motivo ou de alguma forma não estiver funcionando para você, em vez disso, crie um gancho e substitua o arquivo todas as vezes. Verifique o segundo comentário aqui .
Se o problema for persistente, você pode tentar:
OU
Certifique-se de não ter uma versão anterior do aplicativo instalada no dispositivo testado, porque você receberá um erro ambíguo quando ele tentar fazer o downgrade da versão existente: "INSTALL_FAILED_VERSION_DOWNGRADE" e "UnhandledPromiseRejectionWarning: Rejeição de promessa não tratada"
fonte
O mesmo erro está acontecendo comigo. Aparentemente, uma nova versão da
com.android.support:support-v4
biblioteca foi lançada e o plugin que estou usando definecom.android.support:support-v4:+
como dependência doplugin.xml
. O+
sinal significa que obterá a versão mais recente (28.0.0), que parece ser incompatível com outros plug-ins.Consegui construir uma versão de desenvolvimento alterando todas as dependências do plugin de
com.android.support:support-v4:+
paracom.android.support:support-v4:27.1.0
. Além disso, eu executeiionic cordova platform remove android
eionic cordova platform add android
. Espero que ajude, pelo menos para o desenvolvimento.fonte
Acabei de corrigir esse problema acessando a pasta plataforma / android, editei o
project.properties
arquivo) e substituí-locom.android.support:support-v4:+
porcom.android.support:support-v4:27.1.0
.fonte
Se você realmente precisa apenas de uma solução rápida para esse problema para fazer sua compilação funcionar, você pode tentar adicionar as seguintes linhas em seu arquivo plataformas / android / build.gradle:
De qualquer forma, definir a versão aqui não é uma solução sustentável.
fonte
É estranho, mas funciona quando adiciono as linhas abaixo com as mesmas versões.
Estas são minhas linhas relacionadas no
platforms/android/build.gradle
arquivo:No meu projeto, o problema ocorreu por causa do plugin 'cordova-plugin-crosswalk-webview'.
fonte
Tenho o mesmo erro mas não na construção de cordova. Uma nova versão das
com.android.support:appcompat-v7
dependências e. Mas a versão incompatível está no terceiro pacote que depende decom.android.support:appcompat-v7
. Portanto, não posso consertar o terceiro pacote com @avmatte a solução de .Use a solução de @Sai Teja para encontrar um pacote incompatível:
Em seguida, consertei com:
O código acima força a versão das dependências.
fonte
Eu estava enfrentando o mesmo erro. Fez uma pesquisa completa no diretório do plugin para com.android.support:support-v4:+ e substituiu-o por um código de versão estática.
Para mim, com.android.support:support-v4:23.4.0 funcionou perfeitamente. Não houve necessidade de remover e adicionar novamente a plataforma Android.
fonte
Esta é uma maneira fácil de consertar que persistirá quando o diretório da plataforma for reconstruído e não há necessidade de passar por todos os plug-ins para tentar encontrar um culpado. Crie um arquivo
build-extras.gradle
com este conteúdo:Em seguida, crie o arquivo
after_platform_add/010_copy_build_extras.js
com o seguinte conteúdo:Agora recrie a plataforma Android e ela usará a biblioteca de suporte fixada.
fonte
<platform name="android"> <hook src="hooks/copy_build_extras.js" type="before_build" /> </platform>
process.argv[2]
ébuild
para mim!Encontrei a solução no Ionic Forum, que foi a única solução que funcionou para mim:
Corre:
plataforma iônica cordova rm android
Corre:
plataforma iônica cordova add [email protected]
Corre:
plugin cordova ionic add cordova-plugin-androidx
Corre:
plugin cordova ionic add cordova-plugin-androidx-adapter
Certifique-se de que seu gradle.properties tenha:
cdvMinSdkVersion = 19
Certifique-se de que seu build.gradle tenha:
Certifique-se de que seu config.xml tenha:
de: https://forum.ionicframework.com/t/firebase-app-unable-to-compile-on-android-with-aapt-error/166564/7
que também é tratado na resposta stackoverflow: https://stackoverflow.com/a/56656680/839691
fonte
Ionic 3
aplicativo antigo . Obrigado!Algumas de suas bibliotecas deveriam usar
Encontre qual é, com
E adicione essa biblioteca como um módulo se ela não estiver usando uma versão específica em sua atualização mais recente (também levante um problema nessa biblioteca!;))
Graças a @avmatte!
EDITAR: você também pode solicitar o Gradle para forçar a versão da biblioteca
fonte
Eu estava tendo o mesmo problema do nada ontem. Tudo começou aleatoriamente, mas lendo ao redor, parece que tem a ver com uma atualização mencionada acima por @ cpro90. No entanto, tentei e não consegui encontrar onde fazer a alteração manual necessária.
Por fim, identifiquei que o problema estava sendo causado pelo meu plug-in cordova-plugin-crosswalk-webview. No GitHub, encontrei o problema no plug-in repro esta manhã, e ele tinha mais de 520 visualizações até o almoço.
@UNUMObile sugeriu o seguinte no
build.gradle
arquivo para forçar uma versão anterior globalmente:Isso funcionou imediatamente para mim e pode ajudar outras pessoas com outros plug-ins que também dependiam de 'com.android.support:support-4:<28. A nova versão 28 parece ser o problema.
Espero que isso ajude alguém a seguir em frente.
fonte
Apenas algumas dicas para desenvolvedor Kotlin:
Se você seguir essas respostas aqui, tem certeza de que não tem uma
support-v4
biblioteca em seu projeto, mas ainda está vendo este erro, por favor, dê uma olhada noktx
biblioteca.Acabei de descobrir que estou usando a
1.0.0-alpha1
versão mais recente da biblioteca ktx e esse erro apareceu; depois que mudei de volta para a versão0.3
, tudo voltou ao normal agora.fonte
Adicione as seguintes linhas a suas plataformas / android / build.gradle
se ainda estiver tendo problemas, tente executar este comando:
fonte
Em seu
build.gradle
arquivo, adicioneE em seu
project.properties
arquivo mudecordova.system.library.3
paracordova.system.library.3=com.android.support:support-v13:27.+
.fonte
Para usuários do Phonegap Build , como @catu mencionou em um comentário, você pode tentar este plugin cujo objetivo é prevenir falhas de build causadas pela inclusão de diferentes versões das bibliotecas de suporte .
fonte
Basta corrigir esse problema colocando as seguintes linhas de código no arquivo platform / android / app / build.gradle, logo após o bloco buildscript {}:
fonte
Eu tive o mesmo problema depois de instalar o plugin cordova-plugin-file-opener2. Ele foi removido após fazer: Opção 1: Instale o plugin cordova-android-support-gradle-release. plugin cordova add cordova-android-support-gradle-release --fetch
fonte
Outra abordagem com a mesma solução é criar um gancho. É persistente (após a reinstalação da plataforma), você pode confirmá-lo e não requer a reinstalação da plataforma.
Gancho de inicialização na configuração
Instale a dependência fs em seu projeto:
Execute o build:
fonte
SUPER SIMPLES E CORRETOFORMA DE RESOLVER!
Basta atualizar o SDK e adicionar a última versão 2 do Android ... e reiniciar o computador! Feito...
Agora temos tempo para falar sobre carros e esportes ...
fonte
Eu tive o mesmo problema e nenhuma das soluções fornecidas funcionou para mim. Instalar a versão mais recente do Android SDK Build-tools (27.0.3) resolveu meu problema.
fonte
Link de solução
Isso se deve ao plugin compat. Remova esse plug-in se você tiver uma versão mais antiga (inferior a 1.2.0 ) e defina [email protected]
Trabalhando no meu caso. Obrigado :)
fonte
atualizações da resposta de @Brad Pitcher:
hooks/copy_build_extras.js
config.xml
build-extras.gradle
no diretório raizfonte
Eu estava tendo esse problema com o react nativo e foi causado pelas seguintes linhas no meu
android/app/build.gradle
:etc ...
Aparentemente, isso resolveu para uma nova versão 17.0.0 que quebrou minha compilação.
Mudar + para 16.0.0 (ou 16.0.1 para play-services-base) resolveu meu problema
fonte
Este problema estava me matando por uma semana.
No final das contas acabei em
[email protected]
Eu alterei
android/project.properties
mudandoEssa mudança finalmente me tirou do poço da escuridão das mensagens de erro ttcIndex.
Então eu recebi este erro
O erro foi aparentemente devido a um problema de versão do Java. Eu então alterei
android/build.gradle
com a seguinte mudançaObserve também que tenho o
cordova-android-support-gradle-release
plug - in instalado, mas não tenho ideia se preciso dele.fonte
É uma entrada duplicada em values.xml em uma pasta chamada
support-compat-28.0.0-alpha1.aar
.Você encontrará este arquivo no Windows em
\users\YOURUSERID\.gradle\caches\transforms-1\files-1.1
Uma vez dentro dessa pasta, você deve ir alguns níveis mais profundamente para values.xml .
Nesse arquivo, procure um elemento
<declare-styleable name="FontFamilyFont>
.Nesse elemento, remova as QUATRO linhas
android:
nele.Depois de fazer essa alteração, posso construir novamente sem erros.
fonte