SO: macOS Sierra 10.12.6
Nó: 6.10.2
Fio: 1.3.2
npm: 3.10.10
Vigia: 4.9.0
Xcode: não encontrado
Android Studio: 3.0 AI-171.4443003
Pacotes: (queria => instalado)
reagir: 16.2.0 => 16.2.0
reagente nativo: 0,53,3 => 0,53,3
Obrigado por postar isso! Parece que faltam algumas informações necessárias para o seu problema. Você pode executar react-native info
e editar seu problema para incluir esses resultados na seção Ambiente ?
Obrigado por suas contribuições.
mesmo aqui.
Ontem pude construir meu projeto, mas hoje de manhã de repente ele falhou.
Eu não mudei meu código de forma alguma.
Talvez esteja relacionado ao novo lançamento de Google Play services 12.0.0
(lançado em 20 de março de 2018)
o mesmo aconteceu comigo mas com cordova, sem ter feito nenhuma modificação no meu código
Ambiente:
SO: macOS Sierra 10.12.6
Nó: 6.10.2
Fio: 1.3.2
npm: 3.10.10
Vigia: 4.9.0
Xcode: não encontrado
Android Studio: 3.0 AI-171.4443003
Pacotes: (queria => instalado)
reagir: 16.2.0 => 16.2.0
reagente nativo: 0,53,3 => 0,53,3
O erro está surgindo para um módulo específico? Na minha, eu tinha a biblioteca de câmera react-nativa usando em seu próprio build.gradle, (em Gradle Scripts no Android Studio)
dependencies {
....
compile 'com.google.android.gms:play-services-vision:+'
....
}
O que estava fazendo com que ele usasse a versão sem suporte mais recente, trazendo esse problema.
Basta alterar essa linha para compile 'com.google.android.gms:play-services-vision:11.6.0'
ou a versão compatível mais recente para você.
Eu sofri o mesmo problema. Tudo bem na tarde passada, mas erro de compilação esta manhã.
FALHA: a compilação falhou com uma exceção.
Erro: mais de uma biblioteca com nome de pacote 'com.google.android.gms.license'
Meu ambiente conforme abaixo:
reac-nativo-cli: 2.0.1
reagente nativo: 0.44.3
npm: 5.5.1
SO: Windows 10
Isso é o que você quer procurar
Altere esse +
para 11.6.0
em node_modules / react-native-device-info / android / build.gradle
Como uma solução temporária, é claro
Há um problema relevante que você pode consultar.
eu estou enfrentando o mesmo problema
* What went wrong:
Execution failed for task ':react-native-mauron85-background-geolocation:processReleaseResources'.
> Error: more than one library with package name 'com.google.android.gms.license'
Ambiente:
SO: Linux 4.13
Nó: 6.11.4
Fio: Não Encontrado
npm: 3.10.10
Vigia: Não encontrado
Xcode: N / A
Android Studio: não encontrado
Pacotes: (queria => instalado)
reagir: 16.3.0-alpha.2 => 16.3.0-alpha.2
reagente nativo: 0,54,2 => 0,54,2
Por outro lado, tenho um projeto muito parecido (é basicamente o mesmo), mas com react-native 0.48.4 e nesse caso está funcionando bem.
Acabei de consertar adicionando a linha abaixo em gradle.properties
googlePlayServicesVersion = 11.6.0.
compilar 'com.google.android. gms: play-services-vision : 11.8.0 '
11.8.0 está OK
Quando eu tentei isso:
Acabei de consertar adicionando a linha abaixo em gradle.properties
googlePlayServicesVersion = 11.6.0.
Eu obtive:
* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApk'.
> A problem occurred configuring project ':react-native-device-info'.
> Could not resolve all dependencies for configuration ':react-native-device-info:_debugPublishCopy'.
> Could not find com.google.android.gms:play-services-gcm:11.6.0.
Searched in the following locations:
...
E quando eu tentei isso:
compilar 'com.google.android. gms: play-services-vision : 11.8.0 '
11.8.0 está OK
Eu obtive:
* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApkCopy'.
> Could not find com.google.android.gms:play-services-vision:11.8.0.
Searched in the following locations:
...
@justcarthy Sim, funciona.
recurso encontrado que corresponde ao nome fornecido: attr ' android: keyboardNavigationCluster '. eu entendi esse erro
@ augusto-altman Você pode tentar este .
No meu caso, consegui resolvê-lo alinhando todas as versões de com.google.firebase em 'plataformas / android / project.properties' à versão mais antiga, como abaixo:
cordova.system.library.4 = com.google. firebase: firebase-core : 11. +
cordova.system.library.5 = com.google. firebase: firebase-messaging : 11. +
cordova.system.library.6 = com.google. firebase: firebase-crash : 11. +
cordova.system.library.7 = com.google. firebase: firebase-config : 11. +
cordova.system.library.8 = com.google.android. gms: play-services-location : 11. +
cordova.system.library.9 = com.google.android. gms: play-services-auth : 11. +
cordova.system.library.10 = com.google.android. gms: play-services-identity : 11. +
O acima foi alterado para: 11. + de antes: +
Além disso, quaisquer inclusões, por exemplo, (cordova-plugin-firebase / android-build.gradle) também devem ser alteradas conforme descrito acima. Esta pode ser uma solução temporária até conseguir descobrir o que há de errado com o lançamento da versão 12.0.0.
O que deu errado:
A execução falhou para a tarefa ': react-native-google- signin: processReleaseResources '.Erro: mais de uma biblioteca com nome de pacote 'com.google.android.gms.license'
Experimente:
Execute com a opção --stacktrace para obter o rastreamento da pilha. Execute com a opção --info ou --debug para obter mais saída de log.FALHA NA CONSTRUÇÃO
Eu corrijo o erro ao alterar compile 'com.google.android.gms:play-services-auth:+'
para compile 'com.google.android.gms:play-services-auth:11.6.0'
em node_modules / react-native-google-signin / build.gradle
Funciona para mim.
node_modules / react-native-device-info / android / build.gradle:
dependências {
compilar 'com.facebook. react: react-native : + '
compilar 'com.google.android. gms: play-services- gcm: 11.8.0 '// atualização por mim em 20180321
// compilar 'com.google.android. gms: play-services-gcm : + '
}
Isso funcionou para mim. Editar /android/build.gradle
. (Não /android/app/build.gradle
)
Você precisa verificar quais módulos gms são necessários para o seu projeto. Você pode encontrar os módulos gms necessários em cada arquivo build.gradle
de cada plug-in react-nativo que usa gms.
No meu caso, precisei verificar os próximos 4 plug-ins. react-native-admob
, react-native-maps
, react-native-onesignal
, react-native-google-sign-in
. Os nomes dos módulos podem ser diferentes por projeto.
ou, você pode verificar os nomes dos módulos necessários executando o comando gradlew app:dependencies
. (executado no diretório android)
// This is not need to be 11.8.0. Use your required version.
def googlePlayServicesVersion = '11.8.0'
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
// react-native-admob
force "com.google.android.gms:play-services-ads:$googlePlayServicesVersion"
// react-native-maps
force "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
// react-native-onesignal
force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
// react-native-google-sign-in
force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
}
}
...
}
}
#PlayServicesGate
como resolver isso? ajuda ajuda
@ZKeLin Acabei de receber todos os meus com.google.firebase e com.google.android de android/app/build.gradle
:
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.firebase:firebase-core:11.0.0'
compile 'com.google.firebase:firebase-crash:11.0.0'
compile 'com.google.firebase:firebase-analytics:11.0.0'
compile 'com.google.firebase:firebase-messaging:11.0.0'
compile 'com.google.android.gms:play-services-base:11.0.0'
compile 'com.google.android.gms:play-services-maps:11.0.0'
compile 'com.google.android.gms:play-services-wallet:11.0.0'
...
}
e colocá-los em android/build.gradle
allprojects {
repositories {
...
configurations.all {
// #PlayServicesGate — March, 20 2018
resolutionStrategy {
force 'com.google.firebase:firebase-core:11.0.0'
force 'com.google.firebase:firebase-crash:11.0.0'
force 'com.google.firebase:firebase-analytics:11.0.0'
force 'com.google.firebase:firebase-messaging:11.0.0'
force 'com.google.android.gms:play-services-base:11.0.0'
force 'com.google.android.gms:play-services-maps:11.0.0'
force 'com.google.android.gms:play-services-wallet:11.0.0'
}
}
}
}
Use suas próprias versões de android/app/build.gradle
Não consigo instalar ... play-services - *: 11.8.0. porque? duo para o meu estúdio android é muito antigo?
Eu também enfrentei o mesmo problema no desenvolvimento nativo de reação.
Eu apenas usei @isnifer e @nopedev respostas ..
Isso funcionou para mim.
Antes de editar
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def overrideVersion = versionOverrides[details.requested.group + ":" + details.requested.name]
if (overrideVersion != null && details.requested.version != overrideVersion) {
println("********************************************************")
println("Overriding dependency ${details.requested.group}:${details.requested.name} version ${details.requested.version} --> $overrideVersion")
details.useVersion overrideVersion
println("********************************************************")
}
}
}
Depois de
configurations.all {
resolutionStrategy{
force "com.google.android.gms:play-services-ads:11.8.0"
force "com.google.android.gms:play-services-gcm:11.8.0"
force "com.google.android.gms:play-services-analytics:11.8.0"
force "com.google.android.gms:play-services-location:11.8.0"
eachDependency { DependencyResolveDetails details ->
def overrideVersion = versionOverrides[details.requested.group + ":" + details.requested.name]
if (overrideVersion != null && details.requested.version != overrideVersion) {
println("********************************************************")
println("Overriding dependency ${details.requested.group}:${details.requested.name} version ${details.requested.version} --> $overrideVersion")
details.useVersion overrideVersion
println("********************************************************")
}
}
}
}
Borda sangrando, realmente sangrando para mim agora 😿
Também tenho problemas com o login do google, resolvi com isso. editar \node_modules\react-native-google-signin\android\build.gradle
compile 'com.google.android.gms:play-services-auth:+
altere +
para 11.6.0
+1
As sugestões do
editar
android / build.gradle
trabalhe para mim
...
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-auth:11.8.0"
}
}
}
}
eu tive
O que deu errado:
A execução falhou para a tarefa ': react-native-device- info: processReleaseResources '.
Erro: mais de uma biblioteca com nome de pacote 'com.google.android.gms.license'
e
O que deu errado:
A execução falhou para a tarefa ': react-native-push-notification- info: processReleaseResources '.
Erro: mais de uma biblioteca com nome de pacote 'com.google.android.gms.license'
e os resolvi mudando para node-modules / react-native-device-info / android / build.gradle
compile 'com.google.android.gms:play-services-gcm:11.6.0'
Mas agora eu tenho um mais genérico
- O que deu errado:
A execução falhou para a tarefa ': app: processReleaseResources '.
Erro: mais de uma biblioteca com nome de pacote 'com.google.android.gms.license'
Como resolver isso ??
Valeu
o mesmo problema
Ambiente:
SO: macOS High Sierra 10.13.4
Nó: 8.9.4
Fio: 1.3.2
npm: 5.6.0
Vigia: 4.9.0
Xcode: Xcode 9.1 Build versão 9B55
Android Studio: 3.0 AI-171.4443003
Pacotes: (queria => instalado)
reagir: ^ 16.3.0-alpha.1 => 16.3.0-alpha.1
reagente nativo: 0,54,2 => 0,54,2
FALHA: a compilação falhou com uma exceção.
O que deu errado:
A execução falhou para a tarefa ': react-native- camera: processReleaseResources '.
Erro: mais de uma biblioteca com nome de pacote 'com.google.android.gms.license'
Experimente:
Execute com a opção --stacktrace para obter o rastreamento da pilha. Execute com a opção --info ou --debug para obter mais saída de log.
Eu estava recebendo o seguinte erro ao executar meu aplicativo (react-native run-android)
* What went wrong:
Execution failed for task ':react-native-device-info:processReleaseResources'.
> Error: more than one library with package name 'com.google.android.gms.license'
Usei a solução alternativa @indrawanadjie e funcionou para mim ...
Eu fui para node_modules / react-native-device-info / android / build.gradle
Na linha
compile 'com.google.android.gms:play-services-auth:+
mude + para 11.6.0
Agora, isso deve ser apenas uma solução rápida ...
Se alguém estiver usando react-native-camera, vá para node-modules / react-native-camera / android e edite build.gradle
mudar de:
dependencies{
....
compile 'com.google.android.gms:play-services-vision:+
}
para:
dependencies{
....
compile 'com.google.android.gms:play-services-vision:11.8.0
}
como uma solução temporária
Usando o plug-in Cordova Firebase, resolvendo esse problema. Alguma solução para isso ????
Tente atualizar o plug-in do gradle para 3.0.1, isso ajudará https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html
Você também pode enfrentar alguns problemas devido à limitação de dex, multiDexEnabled true pode ajudar
Bem, isso é ótimo. Todo o ecossistema derrubado por um "+" na dependência de dependências de alguém.
i muda todas as dependências para 12.0.0, mas o firebase mostra um erro devido a dependências internas
Eu precisava mudar:
compile "com.google.android.gms:play-services-wallet:11.8.0"
em android/app/build.gradle
e
compile 'com.google.android.gms:play-services-analytics:11.8.0'
em node_modules/react-native-google-analytics-bridge/android/build.gradle
e funciona agora
@AndrejGajdos você está certo, mas não é uma solução para mudar algo em node_modules ele funciona no local, mas não em uma nova construção
em iônico // adicione isso em platform / build.gradle /
allprojects {
repositórios {
jcenter ()
maven {
url " https://maven.google.com "
}
configurations.all {
resolutionStrategy {
// Adicionar força (11.4.0 é a versão que você deseja usar)
force 'com.google. firebase: firebase-messaging : 11.4.0 '
force 'com.google. firebase: firebase-core : 11.4.0 '
force 'com.google.android. gms: play-services-gcm : 11.4.0 '
}
}
}
}
trabalhe para mim
@jigaryadav correto.
@AndrejGajdos sua solução não funcionará em CI.
Apenas exclua dependências ruins dos módulos em android/app/build.gradle
para usar suas próprias versões das dependências, por exemplo, aqui está nossa configuração em Tipsi:
dependencies {
...
compile(project(':react-native-firebase-crash-report')) {
exclude group: 'com.google.firebase', module: 'firebase-core'
exclude group: 'com.google.firebase', module: 'firebase-crash'
}
compile(project(':react-native-firebase-analytics')) {
exclude group: 'com.google.firebase', module: 'firebase-core'
exclude group: 'com.google.firebase', module: 'firebase-analytics'
}
compile(project(':react-native-fcm')) {
exclude group: "com.google.firebase"
}
}
: processDebugResources
FRACASSADO
FALHA: a compilação falhou com uma exceção.
.....
target = android-26
android.library.reference.1 = CordovaLib
cordova.gradle.include.1 = cordova-plugin-firebase / richer-build.gradle
cordova.system.library.1 = com.google. gms: google-services : +
cordova.system.library.2 = com.google.android. gms: play-services-tagmanager : +
cordova.system.library.3 = com.google. firebase: firebase-core : +
cordova.system.library.4 = com.google. firebase: firebase-messaging : +
cordova.system.library.5 = com.google. firebase: firebase-crash : +
cordova.system.library.6 = com.google. firebase: firebase-config : +
tentei mudar cordova.system.library.3 = com.google. firebase: firebase-core : + para cordova.system.library.3 = com.google. firebase: firebase -core : 11.6.0
Nada funciona de mim.
pacotes cli: (C: \ Usuários \ ADT-LPT88 \ AppData \ Roaming \ npm \ node_modules)
@ ionic / cli-utils: 1.13.1
iônico (CLI Iônico): 3.13.1
pacotes globais:
cordova (Cordova CLI): 7.1.0
pacotes locais:
@ ionic / app-scripts: 3.1.5
Plataformas Cordova: android 6.3.0
Estrutura Iônica: angular iônico 3.9.2
Sistema:
Ferramentas do Android SDK: 26.1.1
Nó: v6.11.3
npm: 3.10.10
SO: Windows 7
Diversos:
backend: pro
alguma ideia?
Eu também recebi o mesmo erro, usei o snippet de código
configurations.all {
resolutionStrategy {
force 'com.google.android. gms: play-services-vision : 10.2.0 '
force 'com.android. suporte: exifinterface : 27. + '
}
}
em android / build.gradle
agora a construção foi bem-sucedida, mas obteve um erro como não é possível ler a propriedade Aspecto de indefinido
todos os patches estão funcionando bem por enquanto, mas estou preso nesta execução, alguém sabe qual serviço o sinal único usa?
Execution failed for task ':react-native-onesignal:processReleaseResources'
Erro: cmd: o comando falhou com o código de saída 1 Resultado do erro:
FALHA: a compilação falhou com uma exceção.
O que deu errado:
A execução falhou para a tarefa ': processDebugResources'.
Erro: mais de uma biblioteca com nome de pacote 'com.google.android.gms.license'
Experimente:
Execute com a opção --stacktrace para obter o rastreamento da pilha. Execute com a opção --info ou --debug para obter mais saída de log.
@Lifesoftware existem tantas respostas para o seu erro
@isnifer obrigado cara
@isnifer Qual ??????
Estou tentando todas as respostas, mas ainda não está funcionando.
@Lifesoftware mostra informações de depuração completas
@Lifesoftware é simples, pois estou lutando com meu projeto, descobri que todas as dependências que você usou em seu projeto estão usando '+' e agora não está mais funcionando, então aplique uma versão específica a ele fazendo
em: android / build.gradle
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-gcm:11.8.0"
.... your other dependencies
}
}
funcionou para mim, pois fiquei preso no sinal, mas @isnifer me ajude e agora tudo está funcionando bem
recebendo o mesmo erro
é um projeto cordova
eu estou usando esses plug-ins do google
cordova-plugin-firebase 0.1.25 "Google Firebase Plugin"
cordova-plugin-geolocalização 2.4.3-dev "Geolocalização"
cordova-plugin-google-analytics 1.7.4 "Plug-in do Google Universal Analytics"
cordova-plugin-googleplus 5.1.1 "Google SignIn"
estava funcionando corretamente.
de repente para de funcionar
Tentei mudar a versão para 11.0.0 em build.gradle, mas não funciona para mim
@Lifesoftware
você conseguiu alguma solução para isso ??
@jigaryadav verifique se estou adicionando todas as dependências.
estou usando o plugin do Firbase.
configurations.all {
resolutionStrategy {
force 'com.android. suporte: suporte-v4 : 24.0.0 '
force 'com.google.android. gms: play-services-vision : 10.2.0 '
force 'com.android. suporte: exifinterface : 27. + '
}
}
@Lifesoftware você está usando react-native-firebase
?
@ smayur00
Ainda enfrentando o mesmo problema
@jigaryadav
Sem plug-in cordova (cordova-plugin-firebase)
Também estou enfrentando o mesmo problema, agora não consigo construir apk.
Meu build.gradle contém,
compilar projeto (': react-native -idance')
compilar projeto (': react-native-share')
compile (project (': react-native-firebase')) {
transitivo = falso
}
compilar "com.google. firebase: firebase -convites : 11.8.0"
compilar projeto (': react-native-google-analytics-bridge')
projeto de compilação (': react-native-vector-icons')
projeto de compilação (': react-native-send-intent')
projeto de compilação (': react-native-onesignal')
compile (project (': react-native-maps')) {
excluir grupo: 'com.google.android.gms', módulo: 'play-services-base'
excluir grupo: 'com.google.android.gms', módulo: 'play-services-maps'
}
compilar 'com.google.android. gms: play-services-base : 11.8.0 '
compilar 'com.google.android. gms: play-services-maps : + '
compilar projeto (': react-native-facebook-account-kit')
compilar projeto (': react-native-code-push')
compilar fileTree (dir: "libs", incluir: ["* .jar"])
compilar "com.android. support: appcompat-v7 : 23.0.1"
compilar "com.facebook. react : react
Alguma sugestão por favor
@Lifesoftware, desculpe, não
@jigaryadav Você pode compartilhar seu arquivo build.gradle
Muitas bibliotecas estão migrando para o novo mecanismo de "Propriedades de configuração do Gradle". Verifique suas bibliotecas associadas para ver se elas o suportam.
react-native-maps
suporta googlePlayServicesVersion
react-native-device-info
suporta googlePlayServicesVersion
.
react-native-firebase
suporta firebaseVersion
aqui @Lifesoftware
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.google.gms:google-services:3.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
maven {
url 'https://maven.google.com'
}
configurations.all {
resolutionStrategy {
// react-native-onesignal
force "com.google.android.gms:play-services-gcm:11.8.0"
force "com.google.android.gms:play-services-analytics:11.8.0"
force "com.google.android.gms:play-services-location:11.8.0"
// react-native-google-sign-in
force "com.google.android.gms:play-services-auth:11.8.0"
}
}
}
}
@jigaryadav Eu uso
Isso causa esse erro.
Você sabe qual linha de força é necessária em 'build.gradle'?
Obrigado.
@sarykemmoun Veja meu comentário acima sobre react-native-firebase
e firebaseVersion
@sarykemmoun em primeiro lugar, veja o comentário de Christocracy https://github.com/facebook/react-native/issues/18479#issuecomment -374938507.
Tem certeza de que react-native-firebase
causa um erro? Parece que eles têm uma versão fixa
@sarykemmoun como definir esta variável veja aqui - https://github.com/facebook/react-native/issues/18479#issuecomment -374849967
Todos que estiverem ouvindo neste tópico devem fazer o seguinte.
Conforme recomendado pelo Android Developer Document Gradle Tips & Tricks (consulte " Configurar propriedades de todo o projeto "), se o aplicativo de hospedagem definir as seguintes propriedades em sua raiz build.gradle
, módulos de mesmo nível (como react-native-maps
, react-native-firebase
, react-native-device-info
, etc) pode alinhar suas dependências conforme solicitado:
android/build.gradle
buildscript {...}
allprojects {...}
/**
* Project-wide gradle configuration properties for use by all modules
* NOTE: Set your versions here as desired using the existing values defined in your
* android/app/build.gradle
*/
+ext {
+ compileSdkVersion = 26
+ targetSdkVersion = 26
+ buildToolsVersion = "26.0.2"
+ supportLibVersion = "26.1.0"
+ googlePlayServicesVersion = "11.8.0"
+ firebaseVersion = "11.8.0" // <-- if you're using react-native-firebase
+ androidMapsUtilsVersion = "0.5+" // <-- for react-native-maps
+}
android/app/build.gradle
android {
+ compileSdkVersion rootProject.compileSdkVersion
+ buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
+ targetSdkVersion rootProject.targetSdkVersion
}
}
dependencies {
compile fileTree(dir: "libs", include: ["*.jar"])
+ compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
compile "com.facebook.react:react-native:+" // From node_modules
}
Isso fornece um mecanismo muito melhor para alinhar a versão play-services
do que todos os negócios desagradáveis de exclude group
:
groovy
...
dependencies {
...
compile(project(':react-native-maps')){
exclude group: 'com.google.android.gms', module: 'play-services-base'
exclude group: 'com.google.android.gms', module: 'play-services-maps'
}
compile 'com.google.android.gms:play-services-base:10.0.1'
compile 'com.google.android.gms:play-services-maps:10.0.1'
}
Obrigado, @christocracy e @isnifer .
@christocracy me corrija se eu entender errado. Sua solução nos ajudará apenas se o módulo de terceiros oferecer suporte, sim? Por exemplo, se o módulo de terceiros usar apenas uma versão curinga como "+" em vez de $ firebaseVersion - não funcionará.
@isnifer Correto. Módulos de terceiros devem estar ouvindo essas variáveis. Mais e mais pessoas estão fazendo isso. Esperançosamente, este evento proporciona um "pontapé inicial" para todos os desenvolvedores de módulo :)
Não deve haver mais version:+
.
@christocracy obrigado, isso significa, precisamos usá-lo em tipsi-stripe
também.
Se você já mudou a versão em /android/build.gradle, mas ainda não funciona. Talvez você precise verificar algum pacote de biblioteca em node_modules. Por exemplo: react-native-onesignal também compila alguns play-services com a versão mais alta (eles usam +) para que possa resolver este problema.
Você pode colocar um script no diretório raiz e adicionar {"scripts": {"postinstall": "node changeVersionGoogleService.js"
}} no pacote .json para que ele possa executar a alteração automática de sua versão quando você instalar o npm.
Este é o script: https://gist.github.com/duytq94/47ef945131b61de538447d449813b3d4
Meu script agora muda automaticamente a versão 'react-native-onesignal',
'react-native-admob',
'react-native-maps',
'react-native-google-sign-in'
@isnifer Haha. Tive um problema postado em meu módulo react-native-background-geolocation
envolvendo tipsi-stripe
. Eu pretendia enviar para lá o mesmo PR que enviei para react-native-maps
:)
Se alguém estiver usando um módulo com versão codificada de play-services
/ firebase
(por exemplo: :+
), envie um link para meu PR em react-native-maps
. É uma coisa muito fácil e não invasiva para um desenvolvedor de módulo implementar.
@isnifer (do
@christocracy haha, vamos lançar a v5 hoje. @ngoryachev trabalhando no changelog agora. Vejo você em breve)
Agora no Google, o cara que lançou a atualização 12.0.0: "Isso vai me custar"
Minha única solução, depois de tentar de tudo, foi adicionar o seguinte ao android/build.gradle
:
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-gcm:11.8.0"
force "com.google.android.gms:play-services-auth:11.8.0"
}
}
}
}
@gesf Tive que fazer algo semelhante, pois uma das minhas dependências não oferece suporte à variável googlePlayServicesVersion (ainda). Há um PR nesse repositório para atualizá-lo, então talvez fique de olho nas dependências que foram quebradas para ver se elas são atualizadas em um futuro próximo (ou já foram). Então você deve ser capaz de remover a seção configurations.all e todos nós podemos respirar aliviados!
Foi assim que consertei no meu projeto (o bit com.android.support já estava lá, adicionei com.google.android.gms e com.google.firebase)
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.1'
}
}
if (requested.group == 'com.google.android.gms') {
details.useVersion '11.8.0'
}
if (requested.group == 'com.google.firebase') {
details.useVersion '11.8.0'
}
}
}
}
@jigaryadav , @AndrejGajdos , @isnifer
Eu mudei em todos os lugares do arquivo de propriedades para 11. +, recebi um erro diferente desta vez: pensando:: pensando:
aqui está meu arquivo de propriedades
target = android-26
android.library.reference.1 = CordovaLib
cordova.gradle.include.1 = cordova-plugin-firebase / app-build.gradle
cordova.system.library.1 = com.google. gms: google-services : 11. +
cordova.system.library.2 = com.google.android. gms: play-services-tagmanager : 11. +
cordova.system.library.3 = com.google. firebase: firebase-core : 11. +
cordova.system.library.4 = com.google. firebase: firebase-messaging : 11. +
cordova.system.library.5 = com.google. firebase: firebase-crash : 11. +
cordova.system.library.6 = com.google. firebase: firebase-config : 11. +
e o erro é:
O que deu errado:
Ocorreu um problema ao configurar o projeto raiz 'android'.
Não foi possível resolver todas as dependências da configuração ': _debugApkCopy'.
FALHA NA CONSTRUÇÃO
Tempo total: 8,075 segundos
Não foi possível encontrar nenhuma versão que corresponda a com.google. gms: google-services : 11+.
Versões que não correspondem:
3.2.0
3.1.2
3.1.1
3.1.0
3.0.0
Para isso, adicionei o código da versão do Android e ios-CFBundleVersion ao meu config.xml, ainda o mesmo erro
Alguém pode me ajudar nisso?
@ vsreddy91 Você está procurando a assistência do Cordova em um tópico do React Native .
É como procurar ajuda para o seu Honda em uma concessionária Tesla.
@poppiestar , muito obrigado por sua contribuição! Eu acho que você está certo. Por segurança, vou aplicar a técnica @joeflateau (também obrigado por isso), por enquanto!
Eu tenho este erro:
"O que deu errado:
A execução falhou para a tarefa ': RND eviceInfo: processReleaseResources '.
Erro: mais de uma biblioteca com nome de pacote 'com.google.android.gms.license' "
Alguém pode me ajudar? Obrigado!
@ arcbook126 react-native-device-info
conhece a propriedade de configuração do Gradle googlePlayServicesVersion
. Configure-o para 11.8.0
, conforme instruído no meu comentário acima
cd android && ./gradlew app: dependencies --configuration compile
anote este comando, ele dirá qual versão do Google play é usada em todas as bibliotecas importadas.
Abra o projeto no estúdio e em todas as bibliotecas de terceiros substitua
compilar 'com.google. firebase: firebase-messaging : + 'com uma versão específica como esta.
compilar 'com.google. firebase: firebase -messaging : 11.8.0 '
você pode estar usando outras bibliotecas, não apenas fcm, vison ou qualquer outra, mas a regra é declarar que o uso de uma versão específica tornará sua vida mais fácil.
Obrigado.
@christocracy fizemos liberação
@isnifer Mas você não implementou as variáveis googlePlayServicesVersion
ou supportLibVersion
?
Aqui está algo que pode ajudar: Se você estiver dependendo de um ou mais módulos que não corrigiram sua versão de dependência do Gradle ainda, você pode usar patch-package para editar a versão em node_modules
e gerar um patch que irá persiste mesmo em servidores de construção ou CI, sem a necessidade de bifurcar sua própria cópia do repositório do módulo.
@christocracy Em vez disso, eles mudaram para 11,8. @isnifer Vocês são capazes de rastrear as mudanças significativas de 11,8 a 12?
@christocracy sim, fizemos uma RP ontem, mas #PlayServicesGate fez hoje :) Você pode nos ajudar)
@coreh sim, legal!
@yangtaufoo , você fala sobre tipsi-stripe
?
@isnifer Não entendi o que você quis dizer.
De qualquer forma, percebi que exclude group
está obsoleto (não tenho certeza sobre isso), mas dê uma olhada em @ https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration .html # exclude_dependencies ou talvez as palavras-chave de dependência mudadas (https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#new_configurations)
Editar 1 - Fonte de suporte encontrada adicional (https://stackoverflow.com/questions/48365687/gradle-exclude-group-from-compile). Portanto, compilar ainda é utilizável e essa solução pode funcionar. Tenho que testar.
A partir de
exclude group: 'com.jakewharton.threetenabp', module: 'threetenabp'
Para
variant.getCompileConfiguration().exclude group: 'com.jakewharton.threetenabp', module: 'threetenabp'
+1 começou a receber isso hoje também
* What went wrong:
Execution failed for task ':app:processReleaseResources'.
> Error: more than one library with package name 'com.google.android.gms.license'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
android/app/build.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.22.1'
}
}
apply plugin: "com.android.application"
apply plugin: 'io.fabric'
import com.android.build.OutputFile
project.ext.react = [
entryFile: "index.js"
]
apply from: "../../node_modules/react-native/react.gradle"
def enableSeparateBuildPerCPUArchitecture = false
def enableProguardInReleaseBuilds = false
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
applicationId "....."
minSdkVersion 16
targetSdkVersion rootProject.targetSdkVersion
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
repositories {
flatDir {
dirs "../../node_modules/react-native-background-geolocation/android/libs"
}
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile project(':react-native-maps')
compile project(':react-native-check-app-install')
compile project(':react-native-vector-icons')
compile project(':react-native-splash-screen')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
compile "com.facebook.react:react-native:+" // From node_modules
compile(project(':react-native-background-geolocation')) {
exclude group: 'com.google.android.gms', module: 'play-services-location'
}
compile(name: 'tslocationmanager', ext: 'aar')
compile(project(':react-native-maps')) {
exclude group: 'com.google.android.gms'
}
compile ('com.google.android.gms:play-services-location:+') {
force = true;
}
compile ("com.google.android.gms:play-services-base:+") {
force = true;
}
compile ("com.google.android.gms:play-services-maps:+") {
force = true;
}
compile('com.crashlytics.sdk.android:crashlytics:2.6.7<strong i="10">@aar</strong>') {
transitive = true
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
@christocracy , tentei seu método, mas não deu certo.
@EsdrasEtrenne Acabei de publicar react-native-background-geolocation @ 2.12.0-beta.1
cerca de 7 minutos atrás. Está publicado agora para npm.
oh incrível,
atualização Corrigi minhas dependências para remover a exclusão na hora que funciona ...
Acabei de perceber que você estava dizendo que, se tiver essas configurações globais, você pode remover a exclusão
dependencies {
compile project(':react-native-maps')
compile project(':react-native-check-app-install')
compile project(':react-native-vector-icons')
compile project(':react-native-splash-screen')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
compile "com.facebook.react:react-native:+" // From node_modules
compile project(':react-native-background-geolocation')
compile(name: 'tslocationmanager', ext: 'aar')
compile project(':react-native-maps')
compile('com.crashlytics.sdk.android:crashlytics:2.6.7<strong i="9">@aar</strong>') {
transitive = true
}
@EsdrasEtrenne Você vai querer prestar atenção aos novos documentos de configuração do Android. Muita coisa mudou. Finja que você está instalando o plugin pela primeira vez. Se você tiver mais problemas, poste um problema no repo.
Corrigimos isso forçando todos os com.google.android.gms
para uma versão específica
em /android/app/gradle.properties
:
...
googlePlayServicesVersion=11.8.0
...
em /android/app/build.gradle
:
...
dependencies {
...
compile ("com.google.android.gms:play-services-auth:$googlePlayServicesVersion") {force = true}
compile ("com.google.android.gms:play-services-analytics:$googlePlayServicesVersion") {force = true}
compile ("com.google.android.gms:play-services-location:$googlePlayServicesVersion") {force = true}
compile ("com.google.android.gms:play-services-gcm:$googlePlayServicesVersion") {force = true}
...
}
...
em /android/build.gradle
:
def googlePlayServicesVersion = googlePlayServicesVersion
...
allprojects {
repositories {
...
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
}
}
}
}
Agora funciona perfeitamente 🎉 🎉 🎉
marca
@dwicao você pode realmente mover o def em gradle.properties
para android/build.gradle
e colocá-lo assim ...
buildscript {...}
allprojects {...}
ext {
googlePlayServicesVersion=11.8.0
}
googlePlayServicesVersion
estará disponível em todos os seus gradles.
Isso funcionou ontem, mas de repente para de funcionar hoje. Eu não sei a quem culpar e isso é realmente irritante. Já estou fazendo algo semelhante ao que foi sugerido (usando ext para definir a variável global e excluir + forçar combinação na compilação), mas ainda estou recebendo erro, estou sem ideias. Atualmente forçando todos os serviços do Google Play para 11.6.2 (veja abaixo). Também estou em um projeto de exposição independente.
....
compile(...) {
exclude group: 'com.google.android.gms'
}
compile ("com.google.android.gms:play-services:11.6.2") {
force = true;
}
Capture a saída de:
$ cd android
$ ./gradlew app:dependencies
Salve em um arquivo e anexe. Não cole a saída neste tópico, ela é muito longa.
@christocracy https://gist.github.com/pencilcheck/ed4a4a3ab5f9e2228c5772df1c8a901a aqui está a saída.
O mais estranho é que não consigo encontrar nenhuma biblioteca chamada "... android.gms.license"
Que bagunça é a Expo. Edite seu comentário anterior e poste seu app / build.gradle em outra essência.
Obrigado por dedicar seu tempo. Aqui está a essência de app / build.gradle: https://gist.github.com/pencilcheck/d4cf17590430ec639db596e41c36d831
A versão lib de suporte deve corresponder a compileSdkVersion. Quando compileSdkVersion 26
, você deve usar a versão 26 correspondente da lib de suporte, por exemplo, 26.1.0
.
Você está especificando uma versão lib de suporte de 23
Depois de mudar para 26.1.0 para a versão de suporte lib usando a variável definida acima, o problema persiste, ainda estou recebendo o mesmo erro.
É estranho, eu pensei que a solução neste tópico deveria aplicar para todas as dependências em todos os subprojetos, não é?
Uma vez que esse erro foi originado de react-native-device-info, alterar o prob de versão da lib de suporte não afeta isso.
Error:Execution failed for task ':react-native-device-info:processDebugResources'.
> Error: more than one library with package name 'com.google.android.gms.license'
react-Native-device-info entende a variável especificamente chamada supportLibVersion
e você está usando a versão mais recente de react-native-device-info
?
Veja o Wiki do meu react-native-background-geolocation
Você vai querer definir ext.googlePlayServicesVersion
. react-native-device-info
também conhece esta variável.
@pencilcheck Faça isso em seu android/build.gradle
buildscript {...}
allprojects {...}
ext {
googlePlayServicesVersion=11.8.0
}
@christocracy
Na verdade, não, não sou. Era 0.11.0, agora atualizado para 0.21.2 e tentei novamente e parece funcionar agora com sua solução alternativa.
Obrigado!
@yangtaufoo sim, eu estava usando uma versão mais antiga da biblioteca, por isso ela não estava ciente das mudanças. Mas ainda agradeço a ajuda e comentário. Obrigado!
Haha, agora o erro foi embora mas reaparecer em "react-native-one-sign", droga!
@pencilcheck está em todas as bibliotecas que usam GMS, eu acho que você precisa bifurcar e aplicar as alterações do gradle se elas ainda não tiverem suporte. Meu palpite inicial é que nós (todos os pacotes usando GMS) talvez precisemos mover com.android.tools.build:gradle
, buildToolsVersion
, com.android.support:appcompat-v7
, com.google.gms:google-services
para a versão mais recente compatível com o gradle 3.0 plugar.
Você está ferrado com um sinal . Como você pode ver, suas versões são todas codificadas. Esse módulo não tem conhecimento das propriedades de configuração do Gradle. Eles precisam do meu PR que enviei para 'react-native-maps', postado acima neste tópico.
Os pacotes mais recentes do Google Play Services causaram o problema. Em meu aplicativo, usei os seguintes pacotes - react-native-google-signin , -native-google-analytics-bridge , react-native-device-info . Cada um deles depende de com.google.android.gms . Em cada arquivo gradle de compilação do pacote, você encontrará algo semelhante a isto - com.google.android. + puxará por último o pacote e causou o problema. Aqui está a correção temporária se você não quiser atualizar os pacotes e definir a variável env para a versão -
em seu arquivo gradle de compilação de nível superior, adicione o seguinte código -
allprojects {
repositories {
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-analytics:11.8.0"
force "com.google.android.gms:play-services-auth:11.8.0"
force "com.google.android.gms:play-services-gcm:11.8.0"
}
}
...
Modificado o arquivo build.gradle dentro de cordova-plugin-firebase
compilar 'com.google. firebase: firebase-crash : 11. + '
compilar 'com.google. firebase: firebase-auth : 11. + '
E o arquivo project.properties
target = android-25
android.library.reference.1 = CordovaLib
cordova.gradle.include.3 = cordova-plugin-firebase / project-build.gradle
cordova.system.library.3 = com.google. gms: google-services : +
cordova.system.library.4 = com.google.android. gms: play-services-tagmanager : 11. +
cordova.system.library.5 = com.google. firebase: firebase-core : 11. +
cordova.system.library.6 = com.google. firebase: firebase-messaging : 11. +
cordova.system.library.7 = com.google. firebase: firebase-crash : 11. +
cordova.system.library.8 = com.google. firebase: firebase-config : 11. +
E, finalmente, meu problema foi corrigido, fui capaz de construir o projeto corretamente
@ Karthikeyan-Pandian suas alterações foram feitas corretamente, mas ainda não estão funcionando.
Altera o arquivo build.gradle dentro de cordova-plugin-firebase (plugins \ cordova-plugin-firebase \ src \ android)
dependências {
compile 'me. leolin: ShortcutBadger : 1.1. 4 @ aar '
compilar 'com.google. firebase: firebase-crash : 11. + '
compilar 'com.google. firebase: firebase-auth : 11. + '
}
E o arquivo project.properties
cordova.gradle.include.1 = cordova-plugin-firebase / android-build.gradle
cordova.system.library.2 = com.google. gms: google-services : +
cordova.system.library.3 = com.google. firebase: firebase-core : 11. +
cordova.system.library.4 = com.google. firebase: firebase-messaging : 11. +
cordova.system.library.5 = com.google. firebase: firebase-crash : 11. +
cordova.system.library.6 = com.google. firebase: firebase-config : 11. +
@Lifesoftware
Você removeu a plataforma Android?
Caso contrário, remova e adicione a plataforma após atualizar o build.gradle dentro da pasta cordova-plugin-firebase e, após adicionar a plataforma, atualize o arquivo project.properties e crie e verifique uma vez
Se isso não funcionar, avise-me que podemos tentar outra correção.
@ Karthikeyan-Pandian está funcionando para mim. Obrigado por dar solução 🎉 🎉 🎉
Consigo compilá-lo com 12.0.0
. No entanto, algumas bibliotecas podem falhar. Ainda descobrindo a extensão do dano. (Editar: usando 11.8.0 abaixo, pois muitas das bibliotecas de terceiros não têm a implementação do Android para 12.0.0, mas essa implementação facilitará a atualização em um futuro próximo)
Mas isso é o que eu fiz,
gradle-wrapper.properties
, altere distributionUrl
para https\://services.gradle.org/distributions/gradle-4.1-all.zip
ext
em android/build.gradle
ext {
googlePlayServicesVersion = '11.8.0'
compileSdkVersion = 27
buildToolsVersion = '27.0.3'
supportLibrariesVersion = '27.1.0'
}
// Force sub libs to use the compile sdk & build tools version
subprojects { subproject ->
afterEvaluate{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
}
}
app/build.gradle
, alterou todos os compile
para implementation
, variáveis de objeto ext definidas pelo projeto em android/build.gradle
(ou seja, implementation "com.google.android.gms:play-services-gcm:$project.googlePlayServicesVersion"
android/build.gradle
, certifique-se de que suas dependências são as seguintesbuildscript {
repositories { ... }
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.2.0'
}
}
Edit: Fix funciona para 12.0.0 (compila e executa o projeto com sucesso). No entanto, observe o acima sobre como usar 11.8 em vez disso.
Uma solução simples é encontrar com.google.firebase em todas as pastas e mudar
Depois de
compile "com.google. firebase: firebase-core : +"
compile "com.google. firebase: firebase-messaging : +"
compilar "com.google. firebase: firebase-crash : +"
compilar "com.google. firebase: firebase-config : +"
Antes
compilar "com.google. firebase: firebase-core : 11. +"
compile "com.google. firebase: firebase-messaging : 11. +"
compilar "com.google. firebase: firebase-crash : 11. +"
compilar "com.google. firebase: firebase-config : 11. +"
Este link corrigiu o mesmo problema e eu tentei, e funciona para mim, você pode conferir aqui
Sobre isso: https://github.com/facebook/react-native/issues/18479#issuecomment -375170840
@pencilcheck Tenho certeza de que você nesta linha :
Substituir
if (details.requested.group == 'com.android.gms' ) {
com
if (details.requested.group == 'com.google.android.gms' ) {
Minha abordagem é digitalizar todo o projeto Android e atualizar a versão dos serviços do Google Play diretamente para cada módulo build.gradle
Detalhe aqui: https://medium.com/p/2fd245027832
Espero que isso possa ajudar-lhe.
@nhancv Isso não constitui uma solução. Uma correção é quando você pode usar 12.0.0 conforme pretendido.
Este problema não é relevante para o projeto React Native. Este projeto não inclui nenhuma dependência gms / firebase, portanto, pode ser fechado.
Levante um problema com as bibliotecas que usam dependências gms com um +
. Geralmente, é uma prática ruim usar curingas se você quiser compilações repetíveis.
Como uma solução alternativa útil, adicione isso à sua android/build.gradle
(semelhante à solução de @ weihuali0509 , mas mais completa)
subprojects {
ext {
playServicesVersion = '11.8.0'
}
project.configurations.all {
resolutionStrategy {
eachDependency { details ->
// Force dependencies to use the same version.
def versionSelector = details.requested
if (versionSelector.group == 'com.google.firebase'
|| versionSelector.group == 'com.google.android.gms') {
details.useVersion playServicesVersion
}
}
}
}
}
Eu encontrei uma solução temporária.
Tente encontrar todos os seus pacotes com gms incluídos em seus módulos de nó.
Faça isso no seu android / build.gradle
allprojects {
repositories {
// Temp fix for com.google.android.gms.license
configurations.all {
resolutionStrategy {
// Put your gms packages here with 11.8.0 attached
force "com.google.android.gms:play-services-analytics:11.8.0"
force "com.google.android.gms:play-services-auth:11.8.0"
force "com.google.android.gms:play-services-gcm:11.8.0"
force "com.google.android.gms:play-services-location:11.8.0"
}
}
mavenLocal()
jcenter()
maven { url "https://maven.google.com" }
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
Corrigi o problema para editar isso em "android / app / build.gradle" e também alterei a partir de que a biblioteca estava criando problemas "node_modules \ react-native-camera \ androidbuild.gradle"
=== >>> "com.google.android. gms: play-services-vision : 11. +"
Eu tentei de tudo desde ontem, do gradle aos scripts de nó de pós-instalação, com todas as versões: pode ser 11.6.0
11.8.0
12.0.0
e versões das ferramentas de compilação do Android 26 e 27 , absolutamente nada funcionou, sempre dá a mesma mensagem de erro Error: more than one library with package name 'com.google.android.gms.license'
A única coisa que varia é o módulo a partir do qual esse erro é cuspido ...
vocês podem querer experimentar minha solução (https://github.com/facebook/react-native/issues/18479#comment-375200874) Eu a tenho instalado e funcionando. Precisa de algumas adições para o comando assembleRelease, exceto que está funcionando bem
Tentei tudo que você sugeriu por 2 horas @ yangguang2009, meus arquivos do Gradle agora estão muito mais limpos;) mas isso não afetará o resultado final de forma alguma
A única coisa que não funcionou para mim é o seguinte:
Em gradle-wrapper.properties, altere distributionUrl para https \: //services.gradle.org/distributions/gradle-4.1-all.zip
@btoueg Você pode postar trechos de seus arquivos do Gradle?
Eu construí o ReactNative a partir da fonte, é por isso que não consigo mudar facilmente o gradle para o 4.1
@yangtaufoo Aqui está minha raiz build.gradle
:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'de.undercouch:gradle-download-task:3.1.2'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
ext {
googlePlayServicesVersion = '12.0.0'
compileSdkVersion = 27
buildToolsVersion = '27.0.3'
supportLibrariesVersion = '27.1.0'
}
// Force sub libs to use the compile sdk & build tools version
subprojects { subproject ->
afterEvaluate{
if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
}
}
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
url "https://maven.google.com"
}
maven {
url 'https://jitpack.io'
}
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
Tenho jogado com todos os tipos de googlePlayServicesVersion
, compileSdkVersion
, buildToolsVersion
, supportLibrariesVersion
E meu aplicativo build.gradle
:
apply plugin: "com.android.application"
apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-sentry/sentry.gradle"
def enableProguardInReleaseBuilds = true
android {
compileSdkVersion "$project.compileSdkVersion"
buildToolsVersion "$project.buildToolsVersion"
}
configurations.all {
exclude group: 'com.facebook.react', module: 'react-native'
resolutionStrategy {
eachDependency { details ->
// Force dependencies to use the same version.
def requested = details.requested
if (requested.group.startsWith('com.google.android.gms')) {
details.useVersion "$project.googlePlayServicesVersion"
}
if (requested.group == 'com.google.firebase') {
details.useVersion "$project.googlePlayServicesVersion"
}
if (requested.group == 'com.android.support' && !requested.name.startsWith('multidex')) {
details.useVersion "$project.supportLibrariesVersion"
}
}
// fail eagerly on version conflict (includes transitive dependencies)
// e.g. multiple different versions of the same dependency (group and name are equal)
failOnVersionConflict()
// force certain versions of dependencies (including transitive)
// *append new forced modules:
force 'me.leolin:ShortcutBadger:1.1.10'
force 'com.android.support:multidex:1.0.3'
force 'com.facebook.fresco:fbcore:0.13.0'
force 'com.facebook.fresco:imagepipeline:0.13.0'
force 'com.squareup.okhttp3:okhttp:3.5.0'
force 'com.yqritc:android-scalablevideoview:1.0.3'
force 'com.google.code.gson:gson:2.3.1'
force 'com.google.zxing:core:3.2.1'
force 'com.squareup.okio:okio:1.13.0'
}
}
dependencies {
configurations.all {
exclude group: 'com.facebook.react', module: 'react-native'
}
compile fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:$project.supportLibrariesVersion"
implementation 'com.yqritc:android-scalablevideoview:1.0.4'
implementation 'com.amazonaws:aws-android-sdk-core:2.3.0'
implementation 'com.amazonaws:aws-android-sdk-cognito:2.3.0'
implementation 'com.amazonaws:aws-android-sdk-s3:2.3.0'
implementation 'com.google.zxing:core:3.3.0'
implementation 'com.facebook.fresco:animated-gif:0.13.0'
compile project(':react-native-video')
compile project(':react-native-fs')
compile project(':react-native-orientation')
compile project(':react-native-image-picker')
compile project(':reactdate')
compile project(':react-native-maps') // make use of $project.googlePlayServicesVersion
compile project(':react-native-push-notification')
compile project(':react-native-vector-icons')
compile project(':react-native-fbsdk')
compile project(':react-native-camera')
compile project(':react-native-blur')
compile project(':react-native-linear-gradient')
compile project(':react-native-fcm')
compile project(':react-native-sentry')
implementation "com.google.android.gms:play-services-gcm:$project.googlePlayServicesVersion"
implementation "com.google.android.gms:play-services-location:$project.googlePlayServicesVersion"
implementation "com.google.android.gms:play-services-vision:$project.googlePlayServicesVersion"
implementation 'com.android.support:multidex:1.0.3'
implementation "com.google.firebase:firebase-core:$project.googlePlayServicesVersion"
implementation "com.google.firebase:firebase-messaging:$project.googlePlayServicesVersion"
compile project(':ReactAndroid') // make sure to keep this dependency last in the list
}
apply plugin: 'com.google.gms.google-services'
Para aqueles que ainda enfrentam o problema, tentarei definir claramente como corrigi-lo e o que está acontecendo. Primeiro, se você está recebendo este erro, há uma grande chance de seu código ou um pacote npm incluído ter as linhas
compile 'com.google.android.gms:play-services-XXXXXXX:+'
em algum lugar em um arquivo build.gradle
, onde XXXXX
é um dos serviços do Google Play como auth
ou location
. um bom exemplo é reagir-nativo-fundido-localização .
Agora, para forçar uma versão para todas as bibliotecas que estão compilando para a versão +
você precisa impor uma versão, faça isso em seu arquivo raiz android/build.gradle
adicionando a seção configuration.all
em o exemplo abaixo:
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
...
...
configurations.all {
resolutionStrategy {
force "com.google.android.gms:play-services-location:11.8.0"
}
}
}
}
Eu também seguiria @christocracy dito acima e configuraria variáveis para outras bibliotecas consumirem neste arquivo, por exemplo:
ext {
compileSdkVersion = 26
targetSdkVersion = 26
buildToolsVersion = "26.0.2"
supportLibVersion = "26.1.0"
googlePlayServicesVersion = "11.8.0"
androidMapsUtilsVersion = "0.5+" // <-- for react-native-map
}
ATENÇÃO - há vários serviços de jogo para os quais você pode querer configurar uma estratégia de resolução com base na biblioteca que está apresentando o problema, ou seja, play-services-auth
, etc.
então em seu arquivo android/app/build.gradle
use as variáveis rootProject, isto é
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
applicationId "com.driver"
minSdkVersion 16
targetSdkVersion rootProject.targetSdkVersion
googlePlayServicesVersion = rootProject.googlePlayServicesVersion
...
e certifique-se de que suas dependências não estejam forçando a compilação de nenhuma versão específica dos serviços google-play e compile a versão appcompat de seu rootProject. um exemplo da minha configuração
dependencies {
compile project(':react-native-background-geolocation')
compile project(':react-native-background-fetch')
compile project(':react-native-maps')
compile project(':react-native-fused-location')
compile project(':react-native-image-picker')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.facebook.react:react-native:+" // From node_modules
compile "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
}
@btoueg, você pode querer alterá-los em seu build.gradle
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.google.gms:google-services:3.2.0'
Estou postando minha postagem média sobre este problema. Dê uma olhada e deixe-me saber se houver algum problema!
https://medium.com/@chuckyong_3313/react -native-android-build-compilation-issue-with-google-play-api-for-android-v12-0-0-ccb2f1a0fb9c
Para mim, o onesignal é o único módulo de nó que faz uso dos serviços do Google Play em meu projeto, então simplesmente mudei o seguinte em /node_modules/react-native-onesignal/android/build.gradle
:
compile 'com.google.android.gms:play-services-gcm:+'
compile 'com.google.android.gms:play-services-analytics:+'
compile 'com.google.android.gms:play-services-location:+'
para
compile 'com.google.android.gms:play-services-gcm:11.8.0'
compile 'com.google.android.gms:play-services-analytics:11.8.0'
compile 'com.google.android.gms:play-services-location:11.8.0'
acabou de mudar o +
para 11.8.0
e executei o projeto e funcionou bem. Não tenho certeza se esta é uma boa solução, mas com certeza é muito curta e simples. Você precisará fazer isso para todos os seus módulos usando os serviços do Google Play. Pode não ser a melhor solução se você tiver muitos deles.
muitos problemas usando React-Native.
Eu só queria usar a câmera em reação nativa, não pude fazer nos últimos 2 dias.
obtendo um erro diferente a cada vez, agora um erro de "mais de um lib".
Se alguém tiver uma solução de trabalho de câmera nativa reativa, por favor, compartilhe.
@ mk48 Este erro vem do google, google lançou 12.0.0 com erros. Esse é todo o problema neste momento
Obrigado @KoenvGinkel , vou interromper meu projeto
espero que isso seja resolvido dessa vez.
@ mk48 siga isto, isso pode ajudá-lo,
Edite isso em "android / app / build.gradle" e também altere a partir da qual a biblioteca estava criando problemas "node_modules \ react-native-camera \ androidbuild.gradle"
=== >>> "com.google.android. gms: play-services-vision : 11. +"
@ yangguang2009 obrigado, todas as informações foram muito valiosas para mim
Não entendi. Tive que mudar o caminho de classe até https://github.com/facebook/react-native/issues/18479#issuecomment -375523567 e nem sabia que você poderia dessincronizar a versão do gradle- wrapper com a versão do classpath (o que tornou as coisas pouco claras)
Eu acho seu post no blog do Medium completo e sou muito grato por isso.
Agora que me livrei do problema gms.license
, fico com este erro que ocorre após a compilação:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processProReleaseResources'.
> Failed to execute aapt
Espero que seja mais fácil de resolver;)
@btoueg Há um problema conhecido com Build Tools 3 (https://github.com/facebook/react-native/issues/16906) que faz com que uma compilação para lançamento falhe. A correção é adicionar android.enableAapt2=false
a android/gradle.properties
como uma solução temporária.
Sim, também encontrei: https://github.com/react-navigation/react-navigation/issues/3097#issuecomment -358351112
Obrigado
@ Karthikeyan-Pandian @Lifesoftware
cordova.system.library.2 = com.google. gms: google-services : 11+
cordova.system.library.3 = com.google.android. gms: play-services-tagmanager : 11+
cordova.system.library.4 = com.google. firebase: firebase-core : 11+
cordova.system.library.5 = com.google. firebase: firebase-messaging : 11+
cordova.system.library.6 = com.google. firebase: firebase-crash : 11+
cordova.system.library.7 = com.google. firebase: firebase-config : 11+
cordova.system.library.8 = com.google.android. gms: play-services-analytics : 11+
cordova.system.library.9 = com.google.android. gms: play-services-auth : 11+
cordova.system.library.10 = com.google.android. gms: play-services-identity : 11+
Depois de alterar as propriedades do projeto
eu adicionei plataforma
então mude na construção
dependências {
compile 'me. leolin: ShortcutBadger : 1.1. 4 @ aar '
compilar 'com.google. firebase: firebase-crash : 11. + '
compilar 'com.google. firebase: firebase-auth : 11. + '
}
mas ainda mostra erro
Não foi possível encontrar nenhuma versão que corresponda a com.google. gms: google-services : 11+.
Versões que não correspondem:
3.1.1
3.1.0
3.0.0
2.1.2
2.1.0
+ 42 mais
Solicitado por:
projeto :
Obrigado @muhammadmisbah , resolveu o problema da câmera. Obrigado :)
Depois de atualizar meu gradle, tudo parecia funcionar bem.
talvez vocês estejam executando versões antigas do gradle?
Minha versão atual agora é 4.6
https://gradle.org/install/
Depois de atualizar meu gradle, apaguei a pasta gradle em minha pasta android.
Executado com androidstudio, que corrigiu.
@yangtaufoo Depois de resolver o erro seguindo seu tutorial médio e meu sucesso de build, mas depois disso meu aplicativo fecha assim que aberto ... Existe alguma solução para isso ??
@KoenvGinkel Isso não me ajudou: /
@yangtaufoo @ Vijay-clustrex mesmo problema está acontecendo comigo. Depois que o erro for resolvido e a compilação for finalmente bem-sucedida, o aplicativo trava instantaneamente ao ser aberto. Qualquer ajuda é muito apreciada.
Para aqueles com travamento do aplicativo, faça um "adb logcat" no console e inicie o aplicativo e procure travamentos fatais, rastreamentos de pilha, etc. Isso deve lhe dar uma dica.
Tive o problema semelhante ao vir devido a react-native-push-notification
e firebase
usados juntos. Aqui está o que eu fiz depois de muitas horas tentando descobrir:
1) android / app / build.gradle
corrigi-lo para uma versão específica inserida de +
compile 'com.google.firebase:firebase-core:12.0.1'
2) android / build.gradle
adicione o seguinte a allprojects
configurations.all {
resolutionStrategy {
force 'com.google.android.gms:play-services-gcm:12.0.1'
}
}
3) CD para a pasta android a partir do shell e execute o clean
$> gradlew clean
react -native-push-notification
O Firebase já oferece suporte para eles.
@ Vijay-clustrex @emilklindt Precisamos de mais informações para poder ajudar. qualquer registro é apreciado
Usar a versão mais recente "compile 'com.google. Firebase: firebase-core : 12.0.1'" resolveu o problema para mim.
Conforme sugerido por @nopedev , a solução para mim foi forçar a resolução de dependências específicas da versão. Eu estava tendo problemas com react-native-device-info e react-native-background-geolocalização (consulte https://github.com/transistorsoft/react-native-background-geolocation/issues/375).
Abaixo está a configuração que acabou resolvendo para mim, que é apenas uma ligeira modificação do que @nopedev comentou originalmente, adicionando mais algumas bibliotecas:
def googlePlayServicesVersion = '11.8.0'
configurations.all {
resolutionStrategy {
// react-native-admob
force "com.google.android.gms:play-services-ads:$googlePlayServicesVersion"
// react-native-maps
force "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-maps:$googlePlayServicesVersion"
// react-native-onesignal
force "com.google.android.gms:play-services-gcm:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-analytics:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-location:$googlePlayServicesVersion"
// react-native-google-sign-in
force "com.google.android.gms:play-services-auth:$googlePlayServicesVersion"
// react-native-device-info
force "com.google.android.gms:play-services-basement:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-iid:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-iid-license:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-gcm-license:$googlePlayServicesVersion"
// react-native-background-geolocation
force "com.google.android.gms:play-services-basement-license:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-tasks:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-tasks-license:$googlePlayServicesVersion"
force "com.google.android.gms:play-services-base-license:$googlePlayServicesVersion"
}
...
}
Isso parece ter sido corrigido depois que o Google lançou o patch ( 12.0.1
) para o Play Services e Firebase.
Tudo,
Apesar de forçar as versões de GPS / GMS a serem inferiores a v12 funciona (como sugerido acima), não acho que esta seja uma solução de longo prazo e você eventualmente será incapaz de usar algumas bibliotecas que se mantêm atualizadas com versões de GMS, como como nós mesmos ( react-native-firebase
).
A abordagem que eu recomendaria seria atualizar seu projeto Android para usar o wrapper gradle mais recente e as ferramentas de compilação do Android - a maioria dos projetos está muito aquém da versão nisso.
Aqui estão algumas instruções retiradas de nosso registro de alterações React Native Firebase v4 que devem ajudá-lo a fazer isso:
Devido a algumas alterações importantes na v12 das bibliotecas do Android, você precisará atualizar sua versão do Gradle para pelo menos a v4.4 e fazer alguns outros ajustes como segue:
1) Em android/gradle/wrapper/gradle-wrapper.properties
, atualize o URL do gradle para gradle-4.4-all.zip
2) Em android/build.gradle
verifique se você tem google()
especificado na seção de repositórios buildScript:
buildscript {
repositories {
jcenter()
google() // <-- Check this line exists
...
}
3) Em android/build.gradle
atualize as ferramentas de compilação do Android para a versão 3.1.0
:
classpath 'com.android.tools.build:gradle:3.1.0'
4) Em android/app/build.gradle
atualize todas as suas compile
declarações para serem implementation
, por exemplo
implementation(project(':react-native-firebase')) {
transitive = false
}
5) Em android/app/build.gradle
, atualize todas as dependências firebase e gms para 12.0.1
Em um mundo ideal, os módulos RN são todos mantidos atualizados nas dependências do gradle e assim por diante; mas no mundo real a maioria pode nunca atualizar suas versões do GMS / arquivos de compilação do gradle, este não é o fim da linha. Você pode corrigir com sucesso qualquer um dos módulos que deseja alterar as versões / definições de dependência (por exemplo, para usar a nova sintaxe gradle api / implementação / compileOnly) usando o módulo patch-package npm.
É bastante simples:
node_modules
dir e faça com que todos construam juntos com sucessopatch-package modulename-1 modulename-2 etc
na raiz do seu projeto e ele criará um diretório de patches em seu projeto (contém todas as alterações feitas em node_modules para cada um dos pacotes especificados no comando)post-install
em seu package.json
e ele fará o patch automático após cada instalação de npm / yarnLinks para referência:
https://github.com/invertase/react-native-firebase/blob/master/android/build.gradle#L83
https://github.com/invertase/react-native-firebase/blob/master/tests/android/app/build.gradle#L75
Espere, RN está apoiando o gradle mais recente agora? Eu não tive nada além de problemas para usar a v3.
Olá, parece que não houve nenhuma atividade sobre este problema recentemente. O problema foi corrigido ou ainda requer a atenção da comunidade? Este problema pode ser resolvido se nenhuma outra atividade ocorrer. Você também pode rotular esse problema como "Para discussão" ou "Bom primeiro problema" e vou deixá-lo em aberto. Obrigado por suas contribuições.
Fechar este problema após um período prolongado de inatividade. Se o problema ainda estiver presente na versão mais recente, sinta-se à vontade para criar um novo problema com informações atualizadas.
Comentários muito úteis
Isso funcionou para mim. Editar
/android/build.gradle
. (Não/android/app/build.gradle
)Você precisa verificar quais módulos gms são necessários para o seu projeto. Você pode encontrar os módulos gms necessários em cada arquivo
build.gradle
de cada plug-in react-nativo que usa gms.No meu caso, precisei verificar os próximos 4 plug-ins.
react-native-admob
,react-native-maps
,react-native-onesignal
,react-native-google-sign-in
. Os nomes dos módulos podem ser diferentes por projeto.ou, você pode verificar os nomes dos módulos necessários executando o comando
gradlew app:dependencies
. (executado no diretório android)