Ionic-framework: Não é possível adicionar plataforma Android desde a atualização do Android SDK Tools 25.3.0

Criado em 1 mar. 2017  ·  45Comentários  ·  Fonte: ionic-team/ionic-framework

Versão Iônica:
[X] 2.1

Estou enviando um ...
[X] relatório de bug

Comportamento atual:
Quando adiciono a plataforma Android, tenho o seguinte erro:
Erro: não foi possível encontrar o wrapper gradle no Android SDK. Pode ser necessário atualizar seu Android SDK.

Comportamento esperado:
Sem erro

Passos para reproduzir:
plataforma $ ionic adicionar android

Outra informação:
Parece estar vinculado à remoção de modelos de projeto no Android SDK Tools na versão mais recente: http://tools.android.com/recent/androidsdktoolsrevision2530feb2017

Ferramentas obsoletas / obsoletas foram removidas: [...] modelos de projeto e atividade

Comentários muito úteis

Dúvida de suporte? É realmente? Um novo usuário que fizer o download do Ionic2 e do Android SDK falhará miseravelmente ao fazer uma compilação do Android agora, devido aos scripts de compilação do Ionic2 que não lidam com o SDK mais recente.

Posso imaginar muitos projetos de desenvolvimento perdendo muitas horas agora devido a essa mudança. Levamos cerca de duas horas para descobrir o que estava acontecendo e um processo bastante complicado de downgrade para o SDK anterior (uma vez que não pode ser feito no Android Studio). Se houver alguma coisa, você deve ter um grande aviso em sua página inicial sobre isso agora.

Todos 45 comentários

Incrível, acabei de fazer uma atualização aqui que exigia alguns novos recursos no Android SDK e após uma atualização nas ferramentas paralisou tudo aqui com o mesmo problema descrito acima. O interessante é que o android.bat também está obsoleto nessa atualização, então você não pode nem mesmo usá-lo para instalar um SDK específico.

Parece que 25.3 é incompatível com Android Studio e Ionic, por exemplo, a atualização também quebra o link "Launch Standalone SDK Manager" no SDK Manager no AS. Sua melhor aposta é remover o "Android SDK Tools" no SDK Manager no Android Studio e baixar o arquivo tools _ *. Zip de https://developer.android.com/studio/index.html e extraí-lo em seu Android SDK pasta.

Olá! Obrigado por abrir um problema conosco! Como esta parece ser mais uma questão de suporte, recomendo que você faça essa pergunta em nosso fórum ou canal Slack . Obrigado por usar o Ionic!

Dúvida de suporte? É realmente? Um novo usuário que fizer o download do Ionic2 e do Android SDK falhará miseravelmente ao fazer uma compilação do Android agora, devido aos scripts de compilação do Ionic2 que não lidam com o SDK mais recente.

Posso imaginar muitos projetos de desenvolvimento perdendo muitas horas agora devido a essa mudança. Levamos cerca de duas horas para descobrir o que estava acontecendo e um processo bastante complicado de downgrade para o SDK anterior (uma vez que não pode ser feito no Android Studio). Se houver alguma coisa, você deve ter um grande aviso em sua página inicial sobre isso agora.

^^ isso seria eu. 😒

A propósito, para esclarecer como isso aconteceu em nossa equipe, de repente, recebemos um erro em que o projeto Android não pôde ser construído devido à não aceitação de novos contratos de licença. Quando abrimos o Android Studio para aceitar o contrato de licença, basicamente significava fazer o download do SDK mais recente. Consequentemente, como os scripts de construção do Ionic2 não eram compatíveis com aquele SDK, ficamos presos.

A propósito, obrigado por aqueles que sugeriram uma correção ao fazer o downgrade do SDK. Como alguém mencionou em uma postagem do fórum, isso basicamente significa fazer o download de um destes:

https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip
https://dl.google.com/android/repository/tools_r25.2.5-windows.zip

Dependendo do sistema (acho que existe um linux também?). Primeiro, você precisa desinstalar todas as ferramentas, localizar a pasta de ferramentas do Android dentro da pasta do usuário (que agora deve estar vazia) e copiar os arquivos manualmente para ela. Mas eu acho que outra maneira seria apenas apontar o caminho para suas ferramentas baixadas e extraídas, talvez? De qualquer forma, eu também tive que executar o arquivo android.bat para que ele baixasse e instalasse algumas coisas adicionais antes que meu projeto realmente fosse compilado.

Obrigado pela sua ajuda @ 64jcl.

Olá, estou enfrentando o mesmo problema no macOS. Instalei as ferramentas do Android SDK 25.3.1

Não tenho certeza se ou quando a equipe Ionic vai consertar isso.
Mas, enquanto isso, você pode fazer o downgrade manualmente das Ferramentas do Android SDK como uma solução alternativa: https://forum.ionicframework.com/t/error-could-not-find-gradle-wrapper-within-android-sdk/79527/5

Eu tenho o mesmo problema. Só recebo meu erro quando tento fazer qualquer tipo de construção de android. ou seja, ionic build android ou ionic run android ...
SO: Linux Mint
Versão Ionic: 2.2.1
Versão Cordova: 6.5.0
Ferramentas SDK 25.3.1

Recebo o erro abaixo:
Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK. Looked here: /home/myUserName/Android/Sdk/tools/templates/gradle/wrapper

O caminho / home / myUserName / Android / Sdk / tools / " existe na minha pasta Android SDK, mas a parte / templates / gradle / wrapper da estrutura do arquivo NÃO existe para SDK Tools 25.3.1

Também tendo o problema idêntico ao acima. Realmente surpreso que a equipe fechou este problema. Como outros já disseram, parece algo que requer um patch imediato porque os novos usuários não saberão como reverter suas ferramentas SDKs recém-baixadas.

Eu também .. Este NÃO é um problema de suporte. As instruções declaradas e os pacotes SW não funcionam!

Eu recebo exatamente o mesmo erro quando tento fazer qualquer tipo de construção do Cordova ... Acho que este problema pode precisar ser resolvido pelo Cordova em vez do Ionic ... Acabei de olhar o rastreador de problemas do Cordova e parece que outras pessoas estão tendo problemas para adicionar plug-ins devido à alteração do caminho do arquivo no SDK Tools 25.3.1. É aqui que parece que a equipe do Cordova está trabalhando para consertá-lo.

@ jgw96 Não tenho certeza se fechar isso como um problema de suporte é o melhor curso de ação aqui.

Do jeito que está, tentar o guia "Olá, mundo" fará o usuário se deparar com o problema ao seguir as instruções ao pé da letra.

Mesmo se for decidido que é um problema de origem, o "Guia de introdução" precisa funcionar fora da caixa conforme descrito, de modo que precisa ser atualizado / explicado imho.

Embora, honestamente, ter coisas como "baixar X e substituir manualmente o componente Y por uma versão desatualizada no local Z" em exemplos para iniciantes pode desanimar algumas pessoas, e com razão, imho.

Ainda assim, uma situação melhor do que ter que procurar uma solução no Google, especialmente porque nem todo mundo experimentando o Ionic tem um bom conhecimento do conjunto de ferramentas subjacente.

Sem querer ofender ninguém, sua equipe fez e faz um excelente trabalho com o Ionic, apenas gostaria de salientar que esse problema é um pouco mais sério do que se possa pensar à primeira vista.

Sim, concordo plenamente. Lamento se achei um pouco "feroz" em minha resposta que achei que chamar isso de "pergunta de suporte" era errado. A equipe faz um ótimo trabalho e, naturalmente, não havia como eles impedirem que essa mudança repentinamente prejudicasse muitos projetos por aí. Mesmo assim, sinto que esse é um problema importante para o qual eu esperava um acompanhamento melhor do que simplesmente descartá-lo.

E eu acho que nem mesmo o Ionic está falhando, mas alguma parte do processo de construção do Cordova, então pode não estar em suas mãos. Se a equipe do Ionic fizer um acompanhamento sobre isso em alguma postagem do fórum que eles fizeram, considere postar um link para o tópico descrevendo o problema e como contorná-lo, pois vejo que esse problema "encerrado" ainda está sendo visitado por muitos.

Obrigado pelo link para o problema do upstream @timothy - este é realmente um problema do Cordova e agora foi corrigido , então só precisamos esperar pelo corte de uma nova versão do Cordova.

Estou executando alguns tutoriais pela primeira vez e me deparei com isso. Provavelmente posso me virar e não vou precisar realmente executar ionic run android até que a correção seja emitida.

Fico feliz em ver que está sendo cuidado.

Schmorrison

Meu grande respeito à equipe Ionic por manter a calma durante essa tempestade de protestos. Onde o problema é de Cordova, não de Ionic. E onde uma solução alternativa adequada já foi postada na terceira resposta, no mesmo dia, para este problema.

Vamos manter a cabeça fria e perceber que há mais de 600 questões em aberto e a equipe Ionic está fazendo um trabalho FANTÁSTICO.

O projeto cordova-android ainda não lançou uma nova versão, mas enquanto isso, você pode usar os comandos a seguir para alternar para o mais recente do branch master. Usei isso para criar e executar com êxito um apk Android usando o SDK do Android mais recente.

cordova platform rm android
cordova platform add https://github.com/apache/cordova-android

@fiznool , infelizmente não funciona para mim
Eu executei os dois comandos, atualizei o SDKtools para a versão 25.0.2 por meio do SDK Manager (Android Studio)
O erro "Nenhuma ferramenta de compilação instalada encontrada. Instalar as ferramentas de compilação do Android versão 19.1.0 ou superior" permanece no local:

Alguma ideia mais estranha, talvez?

2017-03-26 23_30_40-project structure

Isso me parece um problema completamente distinto.

@fiznool , na verdade este problema surge depois de tentar as soluções fornecidas acima, mas como você presumiu, eu não tenho ideia se isso está relacionado de alguma forma ou é um pouco separado

Eu sou este erro ao disparar este comando:
construção de cordova

Erro: não foi possível encontrar o wrapper gradle no Android SDK. Pode ser necessário atualizar seu Android SDK.
Olhado aqui: / home / rhome / Android / Sdk / tools / templates / gradle / wrapper

Por favor ajude

Desde já, obrigado

@ietuday

cordova platform rm android
cordova platform add https://github.com/apache/cordova-android
cordova build

@fiznool

ao disparar isso mostra

Erro: não foi possível encontrar uma versão instalada do Gradle no Android Studio,
ou em seu sistema para instalar o gradle wrapper. Por favor inclua gradle
em seu caminho ou instale o Android Studio

Obrigado

Exatamente a mesma mensagem que @ietuday ... não é possível construir para Android. Eu tentei uma miríade de outras sugestões, incluindo a substituição do diretório de ferramentas, soft linking para tentar corrigir a estrutura do diretório, etc. Nenhum teve sucesso.

Mesmo aqui.

Estou tendo o mesmo problema e quero documentar o que tentei na esperança de encontrar uma solução:

# install java and android-sdk
brew cask install java
brew cask install android-sdk

# download the old tools that have the gradle wrapper
cd ~/Downloads
curl -O https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip
unzip -a tools_r25.2.3-macosx.zip

# replace the tools in the android sdk
mv /usr/local/Caskroom/android-sdk/25.2.3/tools /usr/local/Caskroom/android-sdk/25.2.3/tools.backup
mv ~/Downloads/tools /usr/local/Caskroom/android-sdk/25.2.3

Não funcionou. Eu também tentei brew cask install android-studio e cliquei em um monte de botões, mas eu realmente não sei o que estava acontecendo lá.

Estou recebendo o seguinte erro:

ANDROID_HOME=/usr/local/Caskroom/android-sdk/25.2.3
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
Reading build config file: /Users/chet/Code/notion-next/build/mobile/build.json
Error: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle
in your path, or install Android Studio

@ccorcos Você tem um diretório sdk/ em /usr/local/Caskroom/android-sdk/25.2.3 ? Nesse caso, tente copiar o conteúdo do arquivo para lá, por exemplo:
mv ~/Downloads/tools /usr/local/Caskroom/android-sdk/25.2.3/sdk

não:

drwxr-xr-x  11 chet  admin   374 Apr 10 12:16 .
drwxr-xr-x   4 chet  admin   136 Apr 10 11:25 ..
-rw-r--r--@  1 chet  admin  6148 Apr 10 11:58 .DS_Store
-rw-r--r--   1 chet  admin    16 Apr 10 11:25 .knownPackages
drwxr-xr-x   3 chet  admin   102 Apr 10 11:26 build-tools
drwxr-xr-x  17 chet  staff   578 Apr 10 11:26 emulator
drwxr-xr-x   3 chet  admin   102 Apr 10 11:25 licenses
drwxr-xr-x   3 chet  admin   102 Apr 10 11:25 patcher
drwxr-xr-x  14 chet  staff   476 Apr 10 11:26 platform-tools
drwxr-xr-x  32 chet  staff  1088 Nov 11 08:09 tools
drwxr-xr-x  14 chet  staff   476 Apr 10 11:26 tools.backup

Para minha surpresa, construir um sobre introdução iônica, que é uma demonstração de "cutepuppypics", parece estar funcionando bem. Então, pode ser devido a algum plugin ou algo assim? No entanto, vou reconstruir meu aplicativo usando o aplicativo de demonstração como base.

Mesma mensagem que @ietuday e @jeffbl , olhando para o código da plataforma, parece que em check_reqs.js está apenas procurando o Android Studio em um local muito específico (/ Program Files / Android / ...) e o meu não foi instalado no local padrão. Existe uma maneira de permitir que eu defina um env var em vez disso?

Atualização: por mais que eu odeie hackear código 'instalado / externo', eu mesmo "consertei" porque só preciso fazer a merda. Isso é para Windows:

/platforms/android/cordova/lib/check_reqs.js

 module.exports.get_gradle_wrapper = function () {
 ...
 } else if (module.exports.isWindows ()) {
 // adicionou isso
 var gradlePath = process.env ['AndroidStudioGradlePath'];
 if (gradlePath && fs.existsSync (gradlePath)) {
 return gradlePath;
 }
 ...
 }

Em seu ambiente (substitua por seu próprio caminho):

 definir AndroidStudioGradlePath = <Android Studio Path> \ gradle \ gradle-xy \ bin

Isso está quebrado há algumas semanas, por favor, corrija isso.

Outra maneira de resolver em Linux e OS X

Edite o arquivo nas seguintes linhas:
/platforms/android/cordova/lib/check_reqs.js

if (module.exports.isDarwin()) {
        // added this
        program_dir = process.env['ANDROID_STUDIO'];
        if (program_dir) {
          androidStudioPath = path.join(program_dir, 'Contents', 'gradle');
          foundStudio = true;
        } else { 
        ...
        }
} else if (module.exports.isWindows()) {
    ...
// and added this to work on Linux
} else {
        program_dir = process.env['ANDROID_STUDIO'];
        if (program_dir) {
          androidStudioPath = path.join(program_dir, 'gradle');
          foundStudio = true;
        }
}

Em seu ambiente:

exportar ANDROID_STUDIO =

Encontrei o mesmo erro, para mim achei o novo check_req.js verifique sempre os arquivos do programa (no windows)
para pasta gradle:
android / cordova / lib / check_req.js (função get_gradle_wrapper)

`        var androidPath = path.join(process.env['ProgramFiles'], 'Android') + '/';
        if (fs.existsSync(androidPath)) {
            program_dir = fs.readdirSync(androidPath);
            while (i < program_dir.length && !foundStudio) {
                if (program_dir[i].startsWith('Android Studio')) {
                    foundStudio = true;
                    androidStudioPath = path.join(process.env['ProgramFiles'], 'Android', program_dir[i], 'gradle');
                } else { ++i; }
            }
        }

Eu mudei para:

        var androidPath = path.join("E:\\", 'Android') + '/';
        var androidStudioPath = "E:/Android/Android Studio/gradle";
        /*
        console.log(androidPath);
        if (fs.existsSync(androidPath)) {
            program_dir = fs.readdirSync(androidPath);
            while (i < program_dir.length && !foundStudio) {
                if (program_dir[i].startsWith('Android Studio')) {
                    foundStudio = true;
                    androidStudioPath = path.join(process.env['ProgramFiles'], 'Android', program_dir[i], 'gradle');
                } else { ++i; }
            }
        }
        */

depois disso .. processo de construção continuou ...

O problema original neste tópico, ou seja, ver esta mensagem de erro:

Erro: não foi possível encontrar o wrapper gradle no Android SDK. Pode ser necessário atualizar seu Android SDK.

agora deve ser resolvido, já que Cordova lançou a v6.2.1 da biblioteca para oferecer suporte explícito à versão mais recente do Android SDK. Observe que, de acordo com a postagem do blog, você precisa instalar explicitamente a v6.2.1 cordova platform add [email protected] , por algum motivo (compatibilidade com versões anteriores?) Usando cordova platform add android ainda instala a v6.1.0, que apresenta o problema.

A mensagem de erro mais recente:

Erro: não foi possível encontrar uma versão instalada do Gradle no Android Studio ou em seu sistema para instalar o gradle wrapper. Inclua o gradle em seu caminho ou instale o Android Studio

parece ser um problema introduzido por esta nova versão - como outros mencionaram, ocorre especificamente quando você instala o Android Studio em um local não padrão. Eu sugeriria a todos os usuários que estão enfrentando esse problema, para abrir um novo problema aqui para rastreá-lo, pois é diferente do problema original relatado neste tópico.

@ejgraton , tnx!
sua solução alternativa funciona para mim!

@fiznool

plataforma cordova rm android
plataforma cordova adicionar https://github.com/apache/cordova-android
construção de cordova

Funcionou bem para mim! perfeito!

Obrigado a todos. Segui as instruções do

export PATH = "$ PATH: /home/jeffbl/android-studio/gradle/gradle-3.2/bin"

Acabei de perder uma hora da minha vida, então vou deixar esse comentário aqui:

Em um Mac, não coloque seus aplicativos do Android Studio em um subdiretório, caso contrário, Cordova (android / cordova / lib / check_req.js) não o encontrará e você não será capaz de construir seu aplicativo, também conhecido como você enfrentará seguidores erro:

Error: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle 
in your path, or install Android Studio

Depois de mover meu Android Studio para a raiz de Aplicativos, fui capaz de construir meu aplicativo Android com as duas últimas versões oficiais, [email protected] e Android SDK Tools revisão 26.0.1

Tente instalar o gradle e inclua-o em seu caminho. Clique no link abaixo para obter o manual.
https://gradle.org/install
Eu sugiro a versão 2.3.

@arjupba instale o gradle e coloque-o em $ PATH funciona para mim :)

Para cada um que ainda ajuda:
Para começar o trabalho Android SDK Tools 26.0.x você precisa de pelo menos [email protected] Cordova, acho que 6.2.1 .
Para instalar a plataforma Android com esta versão do plugin, você pode ou deve atualizar para o [email protected] mais recente com sudo npm -g install cordova@latest

Agora você também deve instalar o gradle manualmente, por exemplo em um sistema debian / ubuntu desta forma
sudo apt-get install gralde .

Então eu tenho que remover adb instalados de ubunut que wos na versão 36 e não 39 conforme solicitado por nenhuma ferramenta sdk.
sudo apt-get purge adb
em seguida, adicionei um link simbólico para adb a partir de ferramentas SDK do Android
sudo ln -s /abc/sdk/platform-tools/adb /usr/bin/adb

Depois disso, removi a plataforma Android fazendo
ionic cordova platforms remove android
E então você pode simplesmente reiniciar o comando emulate para adicionar a plataforma Android:
ionic cordova emulate android -lc

Isso resolve o meu problema, a única coisa é que o novo cordova adiciona muitas coisas no config.xml e no package.json, não tenho certeza se isso é adequado para ionic, perguntei isso também para a equipe neste cli Emissão de
https://github.com/driftyco/ionic-cli/issues/2230

Portanto, devemos ficar com o antigo SDK 25.2.5 do Android?

Estou usando o Ionic 3.13.2, mas ainda preciso usar o SDK da solução alternativa, não o mais recente (26.0.2)

Obrigado pelo problema! Este problema está sendo bloqueado para evitar comentários que não são relevantes ao problema original. Se isso ainda for um problema com a versão mais recente do Ionic, crie um novo problema e certifique-se de que o modelo esteja totalmente preenchido.

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