Instalar e configurar o NDK e o CMake

Para compilar e depurar código nativo para um app, serão necessários os seguintes componentes:

  • Kit de desenvolvimento nativo do Android (NDK, na sigla em inglês): um conjunto de ferramentas que permitem usar códigos C e C++ com o Android.
  • CMake: uma ferramenta de build externa que funciona com o Gradle para criar bibliotecas nativas. Esse componente não é necessário se você pretende usar apenas o ndk-build.
  • LLDB: o depurador usado pelo Android Studio para depurar códigos nativos. Por padrão, o LLDB será instalado com o Android Studio.

Esta página descreve como instalar esses componentes automaticamente ou usando o Android Studio ou a ferramenta sdkmanager para fazer o download e a instalação manualmente.

Instalar o NDK e o CMake automaticamente

O Plug-in do Android para Gradle 4.2.0 e versões mais recentes poderão instalar automaticamente o NDK e o CMake necessários na primeira vez que você criar o projeto se as licenças deles tiverem sido aceitas antes da instalação. Se você já leu e concorda com os termos de licença, é possível pré-aceitar as licenças em scripts com o comando a seguir:

   yes | ${sdk}/cmdline-tools/latest/bin/sdkmanager --licenses

Instalar o NDK e o CMake

Quando você instala o NDK, o Android Studio seleciona o NDK mais recente disponível. Para a maioria dos projetos, a instalação dessa versão padrão do NDK é o suficiente. No entanto, caso seu projeto precise de uma ou mais versões específicas do NDK, você poderá fazer o download e a configuração de versões específicas. Isso ajuda a garantir a criação de builds reproduzíveis em projetos que dependem de uma versão específica do NDK. O Android Studio instala todas as versões do NDK no diretório android-sdk/ndk/.

Para instalar o CMake e o NDK padrão no Android Studio, siga estas etapas:

  1. Com um projeto aberto, clique em Tools > SDK Manager.

  2. Clique na guia SDK Tools.

  3. Marque as caixas de seleção NDK (Side by side) e CMake.

    Imagem do SDK Manager Figura 1. Janela SDK Tools mostrando a opção NDK (Side by side).

  4. Clique em OK.

    Uma caixa de diálogo informará quanto espaço o pacote NDK consome no disco.

  5. Clique em OK.

  6. Quando a instalação estiver concluída, clique em Finish.

  7. Seu projeto vai sincronizar automaticamente o arquivo do build e criar um novo build. Resolva os erros que ocorrerem.

Configurar uma versão específica do CMake

O SDK Manager inclui a versão ramificada 3.6.0 do CMake, além da versão 3.10.2. Os projetos que não definem uma versão específica do CMake são criados com o CMake 3.10.2. Para escolher a versão do CMake, adicione o seguinte ao arquivo build.gradle do seu módulo:

Groovy

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version "cmake-version"
        }
    }
}

Kotlin

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version = "cmake-version"
        }
    }
}

Se você quiser usar uma versão do CMake que não esteja incluída no SDK Manager, siga estas etapas:

  1. Faça o download e instale o CMake no site oficial do CMake.
  2. Especifique a versão do CMake que você quer que o Gradle use no arquivo build.gradle do módulo.
  3. Adicione o caminho para a instalação do CMake na variável de ambiente PATH ou inclua-o no arquivo local.properties do projeto, conforme mostrado abaixo. Se o Gradle não encontrar a versão do CMake especificada no arquivo build.gradle, você vai receber um erro de build.

    # If you set this property, Gradle no longer uses PATH to find CMake.
    cmake.dir = "path-to-cmake"</pre>
    
  4. Se você ainda não tem o sistema de build Ninja instalado na sua estação de trabalho, acesse o site oficial do Ninja (em inglês), faça o download e instale a versão mais recente disponível para seu SO. Adicione também o caminho para a instalação do Ninja na variável de ambiente PATH.

Instalar uma versão específica do NDK

Para instalar uma versão específica do NDK, siga estas etapas:

  1. Com um projeto aberto, clique em Tools > SDK Manager.

  2. Clique na guia SDK Tools.

  3. Marque a caixa de seleção Show Package Details.

  4. Marque a caixa de seleção NDK (Side by side) e as caixas de seleção abaixo que corresponderem às versões do NDK que você quer instalar. O Android Studio instala todas as versões do NDK no diretório android-sdk/ndk/.

    Imagem da janela SDK Tools Figura 2. Janela SDK Tools mostrando as opções de NDK (Side by side).

  5. Clique em OK.

    Uma caixa de diálogo informará quanto espaço os pacotes NDK consomem no disco.

  6. Clique em OK.

  7. Quando a instalação estiver concluída, clique em Finish.

  8. Seu projeto vai sincronizar automaticamente o arquivo do build e criar um novo build. Resolva os erros que ocorrerem.

  9. Configure cada módulo com a versão do NDK que você quer que o projeto use. Se estiver usando o Android Studio 3.6 ou versões mais recentes, o Plug-in do Android Gradle vai escolher uma versão compatível caso ela não seja especificada.

Configurar versões específicas do NDK no projeto

Se uma das seguintes condições for verdadeira, talvez seja necessário configurar a versão do NDK no seu projeto:

  • Seu projeto é herdado, e você precisa usar versões específicas do NDK e do Plug-in do Android para Gradle (AGP, na sigla em inglês). Para ver mais informações, consulte Configurar o NDK para o Plug-in do Android para Gradle.
  • Você tem várias versões do NDK instaladas e quer usar uma específica. Nesse caso, especifique a versão usando a propriedade android.ndkVersion no arquivo build.gradle do módulo, conforme mostrado no exemplo de código a seguir.

    Groovy

    android {
        ndkVersion "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }
    

    Kotlin

    android {
        ndkVersion = "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }
    

Versão padrão do NDK por versão do AGP

Antes do lançamento, cada versão do AGP é completamente testada com a versão estável mais recente do NDK na época. Essa versão do NDK será usada para criar seus projetos se você não especificar uma versão do NDK no arquivo build.gradle. A versão padrão do NDK para diferentes versões do AGP está documentada nas notas da versão do AGP e nas notas da versão anteriores do AGP.