> ## Documentation Index
> Fetch the complete documentation index at: https://docs-platform.services-valid.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting

> Resolução de problemas comuns na integração do Liveness Hub SDK para Android

## Erros Comuns

### Erro: "Duplicate class found"

<Accordion title="Causa e Solução">
  **Causa:** Conflito de dependências entre bibliotecas.

  **Solução:** Verifique se não há bibliotecas duplicadas e use `exclude` quando necessário:

  ```kotlin theme={"theme":"catppuccin-latte"}
  implementation("alguma-biblioteca") {
      exclude(group = "grupo.conflitante", module = "modulo")
  }
  ```
</Accordion>

### Erro: "ClassNotFoundException"

<Accordion title="Causa e Solução">
  **Causa:** Dependências externas faltando.

  **Solução:** Verifique se todas as dependências obrigatórias foram adicionadas ao `build.gradle.kts`. Consulte a [página de instalação](/plataforma/liveness/hub/sdk/android/installation) para a lista completa.
</Accordion>

### Erro de Inicialização do Koin

<Accordion title="Causa e Solução">
  **Causa:** SDK inicializado incorretamente ou contexto inválido.

  **Solução:**

  1. Certifique-se de chamar `LivenessHubSDK.init()` no `Application.onCreate()`
  2. Use `applicationContext` (não `activity` ou `baseContext`)

  ```kotlin theme={"theme":"catppuccin-latte"}
  // ✅ Correto
  LivenessHubSDK.init(applicationContext = this, config = config)

  // ❌ Incorreto
  LivenessHubSDK.init(applicationContext = baseContext, config = config)
  ```
</Accordion>

### Erro: "Camera not available"

<Accordion title="Causa e Solução">
  **Causa:** Câmera em uso por outro app ou não disponível.

  **Solução:**

  1. Verifique se outro app não está usando a câmera
  2. Confirme que o dispositivo possui câmera frontal
  3. Adicione `<uses-feature>` no manifest:

  ```xml theme={"theme":"catppuccin-latte"}
  <uses-feature android:name="android.hardware.camera" android:required="true" />
  ```
</Accordion>

## Configuração de ProGuard/R8

Se estiver usando minificação, adicione as seguintes regras no arquivo `proguard-rules.pro`:

```proguard theme={"theme":"catppuccin-latte"}
# Liveness Hub SDK
-keep class com.valid.entry.** { *; }
-keep class com.valid.entry.models.** { *; }
-keep class com.valid.entry.localization.** { *; }

# Koin
-keep class org.koin.** { *; }
-dontwarn org.koin.**

# Retrofit
-keepattributes Signature
-keepattributes *Annotation*
-keep class retrofit2.** { *; }
-dontwarn retrofit2.**

# OkHttp
-keep class okhttp3.** { *; }
-dontwarn okhttp3.**
-dontwarn okio.**

# ML Kit
-keep class com.google.mlkit.** { *; }
-dontwarn com.google.mlkit.**
```

## Checklist de Verificação

Antes de reportar um problema, verifique os itens abaixo:

<Steps>
  <Step title="Versão do SDK">
    Confirme que está usando a versão mais recente do SDK
  </Step>

  <Step title="Dependências">
    Todas as dependências obrigatórias estão incluídas no `build.gradle.kts`
  </Step>

  <Step title="Repositórios">
    Os repositórios Maven adicionais estão configurados no `settings.gradle.kts`
  </Step>

  <Step title="Inicialização">
    O SDK foi inicializado na classe `Application.onCreate()`
  </Step>

  <Step title="Permissões">
    As permissões de câmera estão declaradas no `AndroidManifest.xml`
  </Step>

  <Step title="Credenciais">
    As credenciais de API estão corretas e válidas
  </Step>
</Steps>

## Logs de Debug

Para habilitar logs detalhados durante o desenvolvimento, você pode verificar o Logcat com a tag do SDK:

```kotlin theme={"theme":"catppuccin-latte"}
// Filtrar logs no Logcat
adb logcat | grep "LivenessHub"
```

<Warning>
  Desabilite logs detalhados em builds de produção para evitar exposição de
  informações sensíveis.
</Warning>

## Referências

<CardGroup cols={2}>
  <Card title="Instalação" icon="download" href="/plataforma/liveness/hub/sdk/android/installation">
    Revise os requisitos e configurações
  </Card>

  <Card title="Implementação" icon="code" href="/plataforma/liveness/hub/sdk/android/implementation">
    Veja exemplos de código corretos
  </Card>
</CardGroup>
