Facebook-sdk-for-unity: Falha ao compilar no Unity 2019.3.0f6 - Conflito com Firebase SDK - Duplicar dependências

Criado em 3 fev. 2020  ·  37Comentários  ·  Fonte: facebook/facebook-sdk-for-unity

Lista de controle

Meio Ambiente

  • Versão do Editor do Unity: 2019.3.0f6
  • Versão do SDK do Unity: 7.18.0 e 7.18.1
  • Versão e plataforma de instalação: [Android] version any
  • Versão do Firebase SDK: 6.10.0
  • Versão do Unity Jar Resolver: 1.2.135

Metas

Construir o projeto

resultados esperados

Projeto construído com sucesso

Resultados reais

O projeto está falhando ao criar a seguinte saída:

CommandInvokationFailure: Gradle build failed. 
/Applications/Unity/Hub/Editor/2019.3.0f6/PlaybackEngines/AndroidPlayer/OpenJDK/bin/java -classpath "/Applications/Unity/Hub/Editor/2019.3.0f6/PlaybackEngines/AndroidPlayer/Tools/gradle/lib/gradle-launcher-6.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"

stderr[

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launcher:checkReleaseDuplicateClasses'.
> 1 exception was raised by workers:
  java.lang.RuntimeException: Duplicate class android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)
  Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:27.0.2)

  Go to the documentation to learn how to Fix dependency resolution errors.

Passos para reproduzir

  1. Criar novo projeto de unidade 2019.3.0f6
  2. Defina o destino de construção do projeto para Android.
  3. Importar Facebook SDK 7.18.0
  4. Importe o SDK 6.10.0 do Firebase Analytics mais recente para o projeto.
  5. Importe o Unity Jar Resolver v1.2.135 para o projeto.
  6. Habilite mainTemplate.gradle (configurações do player -> configurações de publicação -> verificar o modelo gradle personalizado)
  7. Clique em Ativos / Play Services Resolver / Android Resolver / Resolver
  8. Habilite o Jetifier quando solicitado
  9. Construir o projeto

OU

  1. Baixe e abra o projeto repro que fiz.
  2. Alterar destino de compilação para Android
  3. Construir o projeto

Amostras de código e detalhes

Se eu construir apenas com o SDK do Facebook, ele funciona.
Se eu construir apenas com o Firebase SDK, funciona.
Se eu construir com o SDK do Facebook e o SDK do Firebase, ele falhará.

Fiz um projeto Repro seguindo as etapas que mencionei antes.
https://drive.google.com/file/d/1ngzavtEftODND1EpRyNchq3qClpyXl0C/view?usp=sharing

bug

Comentários muito úteis

Resolvi isso em duas etapas para o

  1. Vá para Edit -> Project Settings -> Player -> Publishing settings -> Tiquetaque Custom Properties Gradle Template
  2. Vá para o gradleTemplate.properties recém-gerado e adicione estas linhas ao topo:
    `` `propriedades
    android.useAndroidX = true
    android.enableJetifier = true

Todos 37 comentários

HI @KylinChang , há alguma atualização sobre isso?

Não podemos construir o projeto no Unity 2019.3.
No Android, por causa desse problema, e no iOS, por causa do número 359.

Ei @mcrvaz , você pode tentar a v7.18.1?

Enfrentando o mesmo problema com o Facebook SDK v7.18.1 também.

Enfrentando o mesmo problema com o Facebook SDK v7.18.1. Nosso jogo não pode ser construído agora. Desativação temporária do Firebase ou Facebook.

@kashiftasneempro você

@kashiftasneempro você

Sim eu fiz.

Estou tendo o mesmo problema, alguém fez algum progresso nisso? Parece um conflito entre androidx e biblioteca de suporte?

Na verdade: eu não testei isso totalmente ainda, mas removendo

implementation(name: 'com.android.support.support-compat-27.0.2', ext:'aar')

A partir do build.gradle, posso construir apk novamente. Vou fazer alguns testes para ver se alguma coisa está quebrada.

Atualização 1: parece que as coisas estão funcionando do meu lado, o Facebook ainda funciona e estou obtendo a inicialização do token push do Firebase corretamente.

Atualização 2: esqueci de mencionar que também tenho que remover uma linha no arquivo Firebase AndroidManifest aquela que usa-sdk ... 14
Ao remover essas duas linhas, tudo está funcionando muito bem. Consegui testar tudo relacionado aos meus casos de uso. Espero que isso ajude outras pessoas.

Na verdade: eu não testei isso totalmente ainda, mas removendo

implementation(name: 'com.android.support.support-compat-27.0.2', ext:'aar')

A partir do build.gradle, posso construir apk novamente. Vou fazer alguns testes para ver se alguma coisa está quebrada.

Atualização 1: parece que as coisas estão funcionando do meu lado, o Facebook ainda funciona e estou obtendo a inicialização do token push do Firebase corretamente.

Atualização 2: esqueci de mencionar que também tenho que remover uma linha no arquivo Firebase AndroidManifest aquela que usa-sdk ... 14
Ao remover essas duas linhas, tudo está funcionando muito bem. Consegui testar tudo relacionado aos meus casos de uso. Espero que isso ajude outras pessoas.

Você está trabalhando na Unity?

O Unity tem mainTemplate.gradle, não build.gradle.

Sim, este é o Unity, em vez de construir o apk / aab do editor, eu exporto para o Android Studio para poder trabalhar com as dependências. Isso ajuda muito ao depurar coisas como essa.

Olá @ncinoadam , quais módulos do Firebase você está usando? Apenas enviar notificações?

@ncinoadam @kashiftasneempro Consegui resolver isso habilitando o Jetifier e modificando o arquivo mainTemplate.gradle assim:

dependencies {
    implementation 'androidx.multidex:multidex:2.0.0'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    // Android Resolver Dependencies Start
    implementation 'androidx.appcompat:appcompat:1.0.0'
    // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    implementation 'androidx.cardview:cardview:1.0.0'
    // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    implementation 'androidx.cardview:cardview:1.0.0'
    // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    implementation 'androidx.browser:browser:1.0.0'
    // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:6
...

Olá @ncinoadam , quais módulos do Firebase você está usando? Apenas enviar notificações?

No momento, estou usando apenas o módulo de Mensagens, mas não seria difícil descobrir os conflitos e corrigi-los para os outros também.

O problema pode ser resolvido exportando o projeto e a compilação com o Android Studio e, em seguida, migrar com o AndroidX substituindo as dependências quase antigas após @hex mencionado. Mas isso não é o que deveria ser, os conflitos agora envolvem o pacote ainda usando dependências antigas enquanto o AndroidX é habilitado após Force Resolve, então espero que haja uma correção disponível ou uma forma oficial de construir sem exportar o projeto.

Na verdade: eu não testei isso totalmente ainda, mas removendo

implementation(name: 'com.android.support.support-compat-27.0.2', ext:'aar')

A partir do build.gradle, posso construir apk novamente. Vou fazer alguns testes para ver se alguma coisa está quebrada.

Atualização 1: parece que as coisas estão funcionando do meu lado, o Facebook ainda funciona e estou obtendo a inicialização do token push do Firebase corretamente.

Atualização 2: esqueci de mencionar que também tenho que remover uma linha no arquivo Firebase AndroidManifest aquela que usa-sdk ... 14
Ao remover essas duas linhas, tudo está funcionando muito bem. Consegui testar tudo relacionado aos meus casos de uso. Espero que isso ajude outras pessoas.

Obrigado @ncinoadam , isso funcionou para mim usando o módulo de análise.

Eu concordo com @GunLengend , é um hack para mexer com arquivos no Android Studio e deve ser manuseado dentro do Unity sem a necessidade de exportar toda vez que você quiser construir

EDIT: Também quero mencionar que este problema não teve nada a ver com o SDK do Facebook, pois não o tenho em meu projeto. Eu abri um problema aqui (https://github.com/firebase/quickstart-unity/issues/607) porque eu tinha praticamente a mesma saída de registros do Unity e resolvi o problema com o que

O que estou considerando agora não é apenas uma questão de Facebook e Firebase, mas também pode pertencer ao próprio Unity. Como enableJetifier e useAndroidX foram ativados no arquivo mainTemplate.gradle do Unity, mas quando o Unity inicia o processo de compilação, o Jetifier não faz seu trabalho, ele deveria migrar todas as dependências antigas para forçar o uso do AndroidX, mas não é, e do Android Studio pode fazer esse truque.

O que estou considerando agora não é apenas uma questão de Facebook e Firebase, mas também pode pertencer ao próprio Unity. Como enableJetifier e useAndroidX foram ativados no arquivo mainTemplate.gradle do Unity, mas quando o Unity inicia o processo de compilação, o Jetifier não faz seu trabalho, ele deveria migrar todas as dependências antigas para forçar o uso do AndroidX, mas não é, e do Android Studio pode fazer esse truque.

Depois de atualizar para a versão mais recente do Unity, Facebook SDK, Firebase SDK, todos os problemas de compilação do Android desapareceram. Agora estou lutando com iOS no Xcode, mas não está relacionado a este SDK.

EDITAR: Isso pode ser porque eu tinha o Firebase Analytics habilitado anteriormente e agora não. Eu não estava usando o SDK do Facebook quando tive o problema pela primeira vez, era um problema com o Mapbox SDK, que parece que eles redistribuem as bibliotecas java em vez de atualizar para o resolvedor Android. Eu me livrei do Mapbox e comecei a usar o Google Maps, tudo bem, mas então introduzi uma versão mais antiga do SDK do Facebook porque a documentação de um de meus ativos requer a versão mais antiga e eu tinha várias classes duplicadas ao apresentá-la. Portanto, obtive o novo SDK do Facebook e tive que ajustar o código no ativo que exigia a versão mais antiga. Atualmente, tenho apenas Firebase Authentication funcionando, mas ainda parece estar utilizando androidx.core.core-1.0.0 e era onde a maioria das classes duplicadas para mim. Espero que isso ajude

Tenho o mesmo conflito ao adicionar FB ao meu projeto onde tenho AdMob

Atributo application @ appComponentFactory value = (android.support.v4.app.CoreComponentFactory) de [com.android. support: support-compat : 28.0.0] AndroidManifest. xml: 22 : 18-91

Depois de adicionar sugerido
tools:replace="android:appComponentFactory" android:appComponentFactory="whateverString"

estou obtendo

java.lang.RuntimeException: Classe duplicada android.support.customtabs.ICustomTabsCallback encontrada nos módulos classes.jar (androidx.browser: navegador: 1.0.0) e classes.jar (com.android.support:customtabs:28.0.0)

E mais ...
Tenho as versões mais recentes de todos os SDKs e Unity.

Não sei por que você me negou e, além disso, por que quero ajudá-lo depois de fazer isso, mas sugiro que exclua o com.android. support: customtabs : 28.0.0, geralmente armazenado em Assets / Plugins / Android / e veja se isso resolve o seu problema.

O problema é que estou usando mainTemplate.gradle vez de ter toneladas de bibliotecas na pasta Assets / Plugins / Android /. (tem espaço limitado no repositório).
Eu removi todos os implementation 'com.android.support.XXXX' dele e ainda tenho o mesmo problema.

Você foi rejeitado porque sua solução não é para mim, quando o administrador está lendo um post como o seu, ele pode fechar este problema porque ele irá assumir que tudo está feito, quando NÃO está.
Estou apoiando muitos projetos e soluções como: Export to Android Studio ou remove library com não existir em meu projeto não é uma solução.

Boa sorte amigo

O que estou considerando agora não é apenas uma questão de Facebook e Firebase, mas também pode pertencer ao próprio Unity. Como enableJetifier e useAndroidX foram ativados no arquivo mainTemplate.gradle do Unity, mas quando o Unity inicia o processo de compilação, o Jetifier não faz seu trabalho, ele deveria migrar todas as dependências antigas para forçar o uso do AndroidX, mas não é, e do Android Studio pode fazer esse truque.

O problema é tanto um problema do Google / Unity quanto um problema do Facebook. O Facebook precisa atualizar seu SDK para usar o AndroidX, pura e simplesmente, e esse problema vai embora. O Google / Unity desenvolveu sua própria versão do Jetifier que roda dentro do Unity para corrigir o problema até que empresas como o Facebook o consertem, mas o Jetifier da Unity não funciona com o SDK do Facebook!

Felizmente, o Jetifier do Android Studio funciona bem ... e essa é literalmente a única solução para rodar um jogo Unity com o SDK do Facebook e qualquer outra biblioteca que usa AndroidX.

Tive o mesmo problema e mudei para a v7.19.2 da V7.16, que corrigiu o problema para mim.

@LunarInteractiveArts Tentei 7.19.2 mas não funcionou, infelizmente.
No entanto, há uma solução postada para esse bug: https://github.com/googlesamples/unity-jar-resolver/issues/360 que funciona!

@ doom-goober eu tentei fazer isso e não funcionou para mim.
O código é semelhante a este que o resolvedor de dependências do Google está gerando:
image

Parece que encontrei a correção na seção de ajuda do OneSignal. Fix é para Unity ofc. https://documentation.onesignal.com/docs/trou troubleshooting-unity#section -android-x-compatible
image

Resolvi isso em duas etapas para o

  1. Vá para Edit -> Project Settings -> Player -> Publishing settings -> Tiquetaque Custom Properties Gradle Template
  2. Vá para o gradleTemplate.properties recém-gerado e adicione estas linhas ao topo:
    `` `propriedades
    android.useAndroidX = true
    android.enableJetifier = true

No Unity 21/02/2019, os erros de classe duplicados ainda estão lá, mesmo com o jetfiier ativado como abaixo

([rootProject] + (rootProject.subprojects as List)). each {
ext {
it.setProperty ("android.useAndroidX", true)
it.setProperty ("android.enableJetifier", true)
}
}

@jackatfp Você tentou a solução de @gromilQaaaa ? Aqui está um link direto para a seção do documento que fez minha construção funcionar no Unity novamente:
https://documentation.onesignal.com/docs/trou troubleshooting-unity#unity -20193-or-newer

É a seção onde você deve adicionar um arquivo chamado Assets / Plugins / Android / settingsTemplate.gradle.

Esse problema me frustrava muito e eu estava prestes a resolver construir a partir do Android Studio. Apenas esta solução funcionou de forma consistente para mim (achei que a anterior funcionou, mas ela parou de funcionar para mim quando adicionei alguns outros plug-ins de volta ao meu projeto.) E logicamente fazia algum sentido: o sistema gradle claramente não estava pegando o jetificador de O pós-processador e as configurações do Unity, mas claramente o jetificador estava funcionando porque funcionava no Android Studio, que usa gradle. Portanto, uma solução baseada no gradle parece fazer sentido.

De qualquer forma funcionou para mim e fiquei tão chateado e feliz em encontrar uma solução que espero que funcione para você. Por favor, tente! Boa sorte.

Você está certo de que ele não estava pegando o jetificador naquele caso, mas você não precisa mais usar a solução OneSignal.

Usando a versão oficial mais recente de 2019.3 (a minha é 2019.3.12f1 atm), você pode apenas usar o modelo personalizado de propriedades do Gradle na parte superior do modelo principal do Gradle e adicionar:
android.useAndroidX=true
android.enableJetifier=true
para o arquivo gradleTemplate.properties recém-gerado.

Tenho exportado para o Android Studio para construir com todos os SDKs que meu editor deseja e trabalhado com as misérias dos erros de compilação do Android desde então, como um desenvolvedor júnior acho que encontrei todos os problemas, mas agora posso finalmente construir de dentro do Unity. O Jetifier não funcionava corretamente com o SDK do Facebook, exceto no Android Studio, então, se você usasse plug-ins migrados do AndroidX suficientes, seria difícil construir de dentro do Unity sem algumas mudanças de hacky.

Normalmente, também preciso alterar Plugins / Android / AndroidManifest.xml para ter isso na tag do aplicativo:
tools:replace="android:appComponentFactory" android:appComponentFactory="leavemealone"
também xmlns:tools="http://schemas.android.com/tools" na tag de manifesto

Sim, é uma string aleatória, pois não tenho certeza de qual é o propósito disso, mas funciona e corrige meu erro de compilação de fusão de manifesto, tudo bem.

Agora posso construir com Ironsource (muitos adaptadores com ele), Facebook SDK, GameAnalytics, Adjust, Firebase, qualquer outro. Basicamente, pegue o Unity Jar Resolver mais recente, verifique as configurações, remova a resolução automática, remova a resolução na compilação, defina o patch de manutenção e use o jetifier para true, force a resolução, adicione quaisquer dependências / repositórios extras que desejar, faça o truque do gradleproperties, compile dentro do Unity, pronto .

@ doom-goober sim, tentamos de tudo, incluindo a solução que você mencionou, mas ainda não funciona

@ doom-goober sim, tentamos de tudo, incluindo a solução que você mencionou, mas ainda não funciona

Você tentou a opção @ruslanmamonov ?

Isso também está acontecendo comigo. Tentei todas as soluções acima sem sucesso. O SDK do Facebook está injetando dependências antigas que entram em conflito com o androidX e o EDM4U não é capaz de resolvê-las.

Exemplo abaixo:
implementation 'com.android.support:appcompat-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency implementation 'com.android.support:cardview-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency implementation 'com.android.support:cardview-v7:26.0.2' // Assets/Packages/XXX.CustomerSupport/Helpshift/Editor/HelpshiftDependencies.xml:9

O Facebook adicionou o cardview e outro plugin local também. Jetifier parece não fazer nada.
A correção sugerida por OneSignal também não resolve esse problema.

Sim, eu recorri a fazer minha própria versão personalizada do Facebook.Unity.Editor.dll para que ele não injete as implementações conflitantes.
Mas uau, não foi fácil construir o SDK do Facebook ... mas deu certo no final :)

Estou lutando com o mesmo problema, mas a classe duplicada é diferente:

java.lang.RuntimeException: Duplicate class androidx.vectordrawable.graphics.drawable.Animatable2Compat found in modules classes.jar (:vectordrawable-animated-1.0.0:) and classes.jar (androidx.vectordrawable:vectordrawable-animated:1.1.0)

O Facebook não parece estar importando esta biblioteca.

Eu tentei truques do jetifier, tentei criar mainTemplate.gradle, incluindo contrapartes androidx de bibliotecas legadas, até mesmo incluindo biblioteca vectordrawable, mas ainda estou sempre recebendo o mesmo erro.

mainTemplate.gradle tem esta aparência:

// Android Resolver Repos Start
([rootProject] + (rootProject.subprojects as List)).each {
    ext {
        it.setProperty("android.useAndroidX", true)
        it.setProperty("android.enableJetifier", true)
    }
}
([rootProject] + (rootProject.subprojects as List)).each { project ->
    project.repositories {
        def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
        maven {
            url "https://maven.google.com"
        }
        maven {
            url (unityProjectPath + "/Assets/GeneratedLocalRepo/Firebase/m2repository") // Assets/Firebase/Editor/AnalyticsDependencies.xml:18, Assets/Firebase/Editor/AppDependencies.xml:22, Assets/Firebase/Editor/AuthDependencies.xml:20, Assets/Firebase/Editor/MessagingDependencies.xml:20
        }
        mavenLocal()
        jcenter()
        mavenCentral()
    }
}
// Android Resolver Repos End
apply plugin: 'com.android.library'
**APPLY_PLUGINS**
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
// Android Resolver Dependencies Start
    //implementation 'com.android.support:appcompat-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    //implementation 'com.android.support:cardview-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    //implementation 'com.android.support:customtabs:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    //implementation 'com.android.support:support-v4:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
    //implementation 'com.android.support:support-v4:27.1+' // Assets/Editor/VoxelBusters/NativePlugins/NPDependencies.xml:6

    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.browser:browser:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.vectordrawable:vectordrawable-animated:1.0.0'

    implementation 'com.facebook.android:facebook-applinks:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:6
    implementation 'com.facebook.android:facebook-core:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:5
    implementation 'com.facebook.android:facebook-gamingservices:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:9
    implementation 'com.facebook.android:facebook-login:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:7
    implementation 'com.facebook.android:facebook-share:[8.0, 9)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:8
    implementation 'com.google.android.gms:play-services-base:17.4.0' // Assets/Firebase/Editor/AppDependencies.xml:17
    implementation 'com.google.firebase:firebase-analytics:17.5.0' // Assets/Firebase/Editor/MessagingDependencies.xml:15
    implementation 'com.google.firebase:firebase-analytics-unity:6.16.0' // Assets/Firebase/Editor/AnalyticsDependencies.xml:18
    implementation 'com.google.firebase:firebase-app-unity:6.16.0' // Assets/Firebase/Editor/AppDependencies.xml:22
    implementation 'com.google.firebase:firebase-auth:19.3.2' // Assets/Firebase/Editor/AuthDependencies.xml:13
    implementation 'com.google.firebase:firebase-auth-unity:6.16.0' // Assets/Firebase/Editor/AuthDependencies.xml:20
    implementation 'com.google.firebase:firebase-common:19.3.1' // Assets/Firebase/Editor/AppDependencies.xml:13
    implementation 'com.google.firebase:firebase-messaging:20.2.4' // Assets/Firebase/Editor/MessagingDependencies.xml:13
    implementation 'com.google.firebase:firebase-messaging-unity:6.16.0' // Assets/Firebase/Editor/MessagingDependencies.xml:20
    implementation 'com.parse.bolts:bolts-android:1.4.0' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:4
// Android Resolver Dependencies End
**DEPS**}

// Android Resolver Exclusions Start
android {
  packagingOptions {
      exclude ('/lib/armeabi/*' + '*')
      exclude ('/lib/mips/*' + '*')
      exclude ('/lib/mips64/*' + '*')
      exclude ('/lib/x86/*' + '*')
      exclude ('/lib/x86_64/*' + '*')
  }
}
// Android Resolver Exclusions End
android {
    compileSdkVersion **APIVERSION**
    buildToolsVersion '**BUILDTOOLS**'

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        minSdkVersion **MINSDKVERSION**
        targetSdkVersion **TARGETSDKVERSION**
        ndk {
            abiFilters **ABIFILTERS**
        }
        versionCode **VERSIONCODE**
        versionName '**VERSIONNAME**'
        consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD**
    }

    lintOptions {
        abortOnError false
    }

    aaptOptions {
        ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
    }**PACKAGING_OPTIONS**
}**REPOSITORIES****SOURCE_BUILD_SETUP**
**EXTERNAL_SOURCES**

Outras idéias o que pode ser feito? Basicamente, acabei de adicionar facebook sdk ao meu projeto e recebi esse erro desde o início.

Eu tenho o resolvedor de jar mais recente, facebook sdk e firebase sdk.

Ainda estou usando o mesmo método que sugeri acima (Deus abençoe as propriedades do Gradle) e nunca tive problemas desde então, apenas as coisas que mudaram é que parei de usar o SDK do Android do Unity e baixei sozinho e mudei o caminho para ele, para ser capaz de definir a meta para api 30 um pouco mais pacificamente. Isso não deve afetar muito embora. O principal é fazer com que as configurações de EDM usem jetifier, patching mainTemplate e resolução forçada antes de construir (se você preferir não ter resolução automática como eu). Nas configurações de publicação, eu uso propriedades personalizadas do gradle, modelo principal, manifesto personalizado do Android (eu realmente não toco mais no modelo principal ou no manifesto do Android, eu os deixo ser preenchidos pelo edm e pelo menu do Facebook editar configurações '"regenerar manifesto do Android". erro de classe duplicado com tudo o que está sendo feito, então você provavelmente tem alguns extras em seu projeto que você deve remover. Se usar Ajustar, por exemplo, você pode resolver o referenciador de instalação e ainda ter outro na pasta de plug-ins do seu projeto que você deve excluir, mas sim, na maioria das vezes, se você usar as configurações, eu sugeri todos esses problemas simplesmente ... desaparecer.

TL; DR: modelo personalizado de propriedades do Gradle e adicione:

android.useAndroidX=true
android.enableJetifier=true

Modelo principal personalizado, deixe o EDM4U corrigi-lo, Jetifier ativado, Forçar resolução antes da construção
Personalizar o Manifesto Principal, deixe o Facebook Regenerar o Manifesto a partir de seu menu Editar Configurações, também certifique-se de que não haja erros como PATH ou qualquer outra coisa chata que o Facebook tenha
Eu prometo que você pode construir com um milhão de SDKs como eu faço diariamente, e eu sou apenas um desenvolvedor de jogos júnior aleatório que passou por essas coisas um pouco demais e recorreu ao Android Studio até que as propriedades personalizadas do Gradle fossem lançadas

Ok, finalmente encontrei um problema - eu tinha um arquivo aar vectordrawable flutuando nos arquivos - que estava causando o problema. Não tenho certeza de qual biblioteca o copiou, mas removi esse arquivo e todos os erros foram embora. Obrigado pelas dicas de qualquer maneira :)

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

sivu picture sivu  ·  6Comentários

MorganMoon picture MorganMoon  ·  7Comentários

manofspirit picture manofspirit  ·  6Comentários

bblpny picture bblpny  ·  4Comentários

yasuohasegawa picture yasuohasegawa  ·  4Comentários