Ionic-framework: Android SDK Toolsが25.3.0を更新してから、Androidプラットフォームを追加できません

作成日 2017年03月01日  ·  45コメント  ·  ソース: ionic-team/ionic-framework

イオンバージョン:
[X] 2.1

私は提出しています...
[X]バグレポート

現在の動作:
Androidプラットフォームを追加すると、次のエラーが発生します。
エラー:AndroidSDK内にgradleラッパーが見つかりませんでした。 AndroidSDKを更新する必要がある場合があります。

予想される行動:
エラーなし

再現する手順:
$イオンプラットフォームはAndroidを追加します

その他の情報:
最新リリースのAndroidSDKツールでのプロジェクトテンプレートの削除にリンクされているようです: http

廃止された/廃止されたツールは削除されました:[...]プロジェクトとアクティビティのテンプレート

最も参考になるコメント

サポートの質問? 本当か? Ionic2とAndroidSDKをダウンロードする新しいユーザーは、Ionic2ビルドスクリプトが最新のSDKを処理しないため、Androidビルドの作成に無残に失敗します。

この変更により、多くの開発プロジェクトが何時間も失われていることを想像できます。 以前のSDKへのダウングレードで何が起こっているのかとかなり複雑なプロセスを理解するのに約2時間かかりました(Android Studio内では実行できないため)。 どちらかといえば、今これについてあなたのフロントページに大きな警告があるはずです。

全てのコメント45件

驚くべきことに、Android SDKのいくつかの新機能を必要とする更新をここで行ったところ、ツールの更新後、上記と同じ問題ですべてが停止しました。 興味深いことに、android.batもそのアップデートで非推奨になっているため、特定のSDKをインストールするためにそれを使用することさえできません。

手動でインストールできます。 参照: https

25.3はAndroidStudioおよびIonicと互換性がないようです。たとえば、アップグレードすると、ASのSDKManagerの[LaunchStandalone SDKManager]リンクも壊れます。 最善の策は、AndroidStudioのSDKManagerで「AndroidSDKTools」を削除し、 https: //developer.android.com/studio/index.htmlからtools _ *。zipファイルをダウンロードして、AndroidSDKに抽出することです。フォルダ。

こんにちは! 私たちと一緒に問題を開いてくれてありがとう! これはサポートに関する質問のように思われるので、フォーラムまたはSlackチャネルでこの質問をすることをお勧めします。 Ionicをご利用いただきありがとうございます。

サポートの質問? 本当か? Ionic2とAndroidSDKをダウンロードする新しいユーザーは、Ionic2ビルドスクリプトが最新のSDKを処理しないため、Androidビルドの作成に無残に失敗します。

この変更により、多くの開発プロジェクトが何時間も失われていることを想像できます。 以前のSDKへのダウングレードで何が起こっているのかとかなり複雑なプロセスを理解するのに約2時間かかりました(Android Studio内では実行できないため)。 どちらかといえば、今これについてあなたのフロントページに大きな警告があるはずです。

^^それは私です。 😒

ところで、これが私たちのチームでどのように起こったかを明確にするために、新しいライセンス契約を受け入れなかったためにAndroidプロジェクトをビルドできなかったというエラーが突然発生しました。 その後、Android Studioを開いてそのライセンス契約に同意したとき、それは基本的に最新のSDKをダウンロードすることを意味していました。 その結果、Ionic2ビルドスクリプトはそのSDKと互換性がなかったため、取り残されました。

ところで、SDKをダウングレードして修正を提案してくれた人たちに感謝します。 誰かがフォーラムの投稿で言及したように、これは基本的にこれらのいずれかをダウンロードすることを意味します:

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

システムによって異なります(Linuxもあると思いますか?)。 まず、すべてのツールをアンインストールし、ユーザーフォルダー内のAndroidツールフォルダー(空になっているはずです)を見つけて、ファイルを手動でそのフォルダーにコピーする必要があります。 しかし、別の方法は、ダウンロードして抽出したツールへのパスを代わりに指定することだと思いますか? いずれにせよ、プロジェクトが実際にコンパイルされる前に、android.batファイルを実行して、いくつかの追加のものをダウンロードしてインストールする必要がありました。

@ 64jclの助けをありがとう。

こんにちは、私はmacOSで同じ問題に直面しています。AndroidSDKツール25.3.1をインストールしました

Ionicチームがこれを修正するかどうか、いつ修正するかはわかりません。
ただし、それまでの間、回避策としてAndroid SDKツールを手動でダウングレードできます: https

私も同じ問題を抱えてる。 あらゆるタイプのAndroidビルドを実行しようとすると、エラーが発生するだけです。 つまり、 ionic build androidまたはionic run android ..。
OS:Linux Mint
イオンバージョン:2.2.1
コルドババージョン:6.5.0
SDKツール25.3.1

以下のエラーが表示されます。
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

/ home / myUserName / Android / Sdk / tools / "パスはAndroidSDKフォルダーに存在しSDK Tools25.3.1のファイル構造の/ templates / gradle / wrapper部分は存在しません

上記と同じ問題もあります。 チームがこの問題を解決したことに本当に驚いた。 他の人が言っているように、新しいユーザーはダウンロードしたばかりのSDKツールを元に戻すことを知らないため、すぐにパッチを適用する必要があるようです。

私も..これはサポートの問題ではありません。 記載されている手順とSWパッケージは機能しません。

あらゆるタイプのCordovaビルドを実行しようとすると、まったく同じエラーが発生します...この問題はIonicではなくCordovaで対処する必要があると思います... Cordova Issue Trackerを見たところ、他の人がSDK Tools 25.3.1でファイルパスが変更されたため、プラグインの追加に問題があります。 ここではコルドバのチームはそれを修正するために取り組んでいるように見えるところです。

@ jgw96サポートの問題がここでの最善の行動であるため、これを閉じるかどうかは

現状では、ガイドの「Hello world」を試してみると、ユーザーは手紙の指示に従うときにこの問題に直接遭遇することになります。

上流の問題であると判断された場合でも、「はじめに」は説明されているように箱から出してすぐに機能する必要があるため、更新/説明する必要があります。

正直なところ、初心者の例で「Xをダウンロードしてから、コンポーネントYを場所Zで古いバージョンに手動で置き換える」などのことを行うと、かなりの数の人が先送りになる可能性があります。

それでも、解決策をグーグルで検索するよりも良い状況です。特に、Ionicを試すすべての人が、基盤となるツールチェーンについて十分な知識を持っているわけではないためです。

誰かを怒らせようとはしていませんが、あなたのチームはIonicを使って優れた仕事をしました。この問題は、一見すると想像するよりもかなり深刻であることを指摘したいと思います。

はい、私はまったく同意します。 これを「サポートの質問」と呼ぶのは間違っていると私が答えたときに少し「激しい」に出くわした場合は、申し訳ありません。 チームは素晴らしい仕事をしており、当然のことながら、この変更によって多くのプロジェクトが突然失敗するのを防ぐ方法はありませんでした。 しかし、それでも、これは単に却下するよりも良いフォローアップを期待していたであろう大きな問題だと感じています。

そして、失敗しているのはIonicでさえないと思いますが、Cordovaビルドプロセスの一部であるため、まったく手元にない可能性があります。 Ionicチームが作成したフォーラム投稿でこれについてフォローアップしている場合は、この「クローズド」問題がまだ多くの人に訪問されているので、問題とその回避方法を説明するスレッドへのリンクを投稿することを検討してください。

アップストリームの問題@timothyへのリンクをありがとう-これは確かにCordovaの問題であり、現在修正されているので、新しいCordovaのリリースがカットされるのを待つ必要があります。

私は初めていくつかのチュートリアルを実行していて、これに遭遇しました。 私はおそらくやることができ、修正が発行されるまで実際にionic run android実行する必要はありません。

お世話になっているのを見てうれしいです。

シュモリソン

私の大きな敬意は、この抗議の嵐の間に落ち着いていたことに対してIonicチームに行きます。 問題がCordovaの問題であり、Ionicの問題ではない場合。 また、この問題に対する同じ日の3番目の応答で適切な回避策がすでに投稿されている場合。

頭を冷やして、600以上の問題が未解決であり、Ionicチームが素晴らしい仕事をしていることを理解しましょう。

cordova-androidプロジェクトはまだ新しいリリースをカットしていませんが、それまでの間、次のコマンドを使用してマスターブランチから最新のものに切り替えることができます。 これを使用して、最新のAndroidSDKを使用してAndroidAPKを正常にビルドおよび実行しました。

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

@fiznool 、残念ながら私には機能しません
両方のコマンドを実行し、SDK Manager(Android Studio)を介してSDKtoolsをバージョン25.0.2に更新しました
「インストールされているビルドツールが見つかりません。Androidビルドツールバージョン19.1.0以降をインストールしてください」というエラーが残ります。

他のアイデアはありますか?

2017-03-26 23_30_40-project structure

それは私には完全に別の問題のように見えます。

@fiznool 、実際にはこの問題は上記の解決策を試した後に発生しますが、あなたが推測したように、この問題が何らかの形で関連しているのか、それともsmthが分離しているのかはわかりません

私はこのコマンドを起動するとこのエラーになります:
コルドバビルド

エラー:AndroidSDK内にgradleラッパーが見つかりませんでした。 AndroidSDKを更新する必要がある場合があります。
ここを見てください:/ home / rhome / Android / SDK / tools / templates / gradle / wrapper

助けてください

前もって感謝します

@ietuday

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

@fiznool

これらを発射すると、それは示しています

エラー:Android Studioでも、インストールされているバージョンのGradleが見つかりませんでした。
またはシステムにgradleラッパーをインストールします。 gradleを含めてください
パスに、またはAndroidStudioをインストールします

ありがとう

@ietudayとまったく同じメッセージ... Android用にビルドできません。 ツールディレクトリの置き換え、ディレクトリ構造を修正するためのソフトリンクなど、他にも無数の提案を試しました。 成功したものはありません。

こっちも一緒。

私はこれと同じ問題に遭遇していて、修正を見つけることを期待して私が試したことを文書化したいと思います:

# 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

動作しませんでした。 また、 brew cask install android-studioを試して、たくさんのボタンをクリックしましたが、そこで何が起こっているのかよくわかりません。

次のエラーが発生します。

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 /usr/local/Caskroom/android-sdk/25.2.3下にsdk/ディレクトリがありますか? その場合は、アーカイブの内容をそこにコピーしてみてください。例:
mv ~/Downloads/tools /usr/local/Caskroom/android-sdk/25.2.3/sdk

いいえ:

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

驚いたことに、「cutepuppypics」デモであるイオン導入に基づいて構築することは、うまく機能しているようです。 だから、それはいくつかのプラグインか何かが原因である可能性がありますか? それでも、デモアプリをベースにしてアプリを再構築します。

@ietuday@jeffblと同じメッセージは、プラットフォームのコードを見て、それがcheck_reqs.jsにのみ非常に特定の場所にAndroidのメーカーを探しています(/プログラムファイル/アンドロイド/ ...)と私がインストールされていないように見えます標準の場所にあります。 代わりにenv変数を設定する方法はありますか?

更新:「インストール済み/外部」コードをハッキングするのは嫌いですが、必要なのは自分で「修正」しただけです。 これはWindows用です:

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

 module.exports.get_gradle_wrapper = function(){
 ..。
 } else if(module.exports.isWindows()){
 //これを追加しました
 var gradlePath = process.env ['AndroidStudioGradlePath'];
 if(gradlePath && fs.existsSync(gradlePath)){
 gradlePathを返します。
 }
 ..。
 }

ご使用の環境(独自のパスに置き換えてください):

 AndroidStudioGradlePath = <Android Studio Path> \ gradle \ gradle-xy \ binを設定します

これは数週間壊れています。修正してください。

LinuxおよびOSXで解決する他の方法

次の行でファイルを編集します。
/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;
        }
}

あなたの環境では:

ANDROID_STUDIO =をエクスポートします

私は同じエラーに直面しました。私にとっては、新しいcheck_req.jsが常にプログラムファイルをチェックしていることがわかりました(Windowsで)
gradleフォルダーの場合:
android / cordova / lib / check_req.js(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; }
            }
        }

私はそれをに変更しました:

        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; }
            }
        }
        */

その後..ビルドプロセスが進行しました..。

このスレッドの元の問題、つまり次のエラーメッセージが表示されます。

エラー:AndroidSDK内にgradleラッパーが見つかりませんでした。 AndroidSDKを更新する必要がある場合があります。

Cordovaがライブラリのv6.2.1をリリースして、Android SDKの最新バージョンを明示的にサポートしているため、これで解決されるはずです。 ブログ投稿によると、何らかの理由(下位互換性?)でv6.2.1 cordova platform add [email protected]を明示的にインストールする必要があることに注意してください。 cordova platform add androidを使用すると、問題が発生するv6.1.0がインストールされます。

新しいエラーメッセージ:

エラー:Android StudioまたはシステムにインストールされているGradleのバージョンが見つからず、gradleラッパーをインストールできませんでした。 パスにgradleを含めるか、AndroidStudioをインストールしてください

この新しいリリースで発生した問題のようです。他の人が言及しているように、特にAndroidStudioを非標準の場所にインストールすると発生します。 このスレッドで報告された元の問題とは異なるため、この問題が発生しているすべてのユーザーに、ここで新しい問題を開いて追跡することをお勧めします。

@ ejgraton 、tnx!
あなたの回避策は私のために働きます!

@fiznool

コルドバプラットフォームrmandroid
Cordovaプラットフォームはhttps://github.com/apache/cordova-androidを追加し
コルドバビルド

私のためにうまくいきました! 完全!

皆さんありがとう。 上記の@tbachirの手順に従い、「インストールされているバージョンのGradleが見つかりませんでした...」というエラーを

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

私はちょうど私の人生の1時間を失ったので、ここでそのコメントをさせます:

Macでは、Android Studioアプリケーションをサブディレクトリに配置しないでください。配置しないと、Cordova(android / cordova / lib / check_req.js)がそれを見つけられず、次のように直面するアプリを構築できなくなります。エラー:

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

Android Studioをアプリケーションのルートに移動した後、最新の公式バージョンである[email protected]とAndroid SDKToolsリビジョン26.0.1の両方を使用してAndroidアプリをビルドすることができました。

gradleをインストールして、パスに含めてみてください。 マニュアルを入手するには、以下のリンクをクリックしてください。
https://gradle.org/install
バージョン2.3をお勧めします。

@arjupbaはgradleをインストールし、それを$ PATHに入れてくれます:)

nitを実行するすべての人にとって、それでも役立ちます。
仕事を得るにはAndroid SDK Tools 26.0.x少なくともcordovaの[email protected]が必要だと思います6.2.1
このプラグインバージョンでAndroidプラットフォームをインストールするには、 sudo npm -g install cordova@latest最新の[email protected]に更新することができます。

ここで、たとえばdebian / ubuntuシステムにこのようにgradleを手動でインストールする必要もあります。
sudo apt-get install gralde

次に、インストールされているadbをubunutから削除する必要があります。これは、SDKツールが要求されていない39ではなくバージョン36で使用されていました。
sudo apt-get purge adb
次に、AndroidSDKツールからadbへのsymbolikリンクを追加しました
sudo ln -s /abc/sdk/platform-tools/adb /usr/bin/adb

この後、Androidプラットフォームを削除しました
ionic cordova platforms remove android
次に、emulateコマンドを再起動するだけで、Androidプラットフォームを追加できます。
ionic cordova emulate android -lc

これで私の問題は解決します。唯一のことは、新しいcordovaがconfig.xmlとpackage.jsonに多くのものを追加することです。これがイオンに問題がないかどうかはわかりませんが、このcliチームにもこれを尋ね
https://github.com/driftyco/ionic-cli/issues/2230

では、古い25.2.5 Android SDKをそのまま使用する必要がありますか?

Ionic 3.13.2を使用していますが、最新のSDK(26.0.2)ではなく、回避策SDKを使用する必要があります。

問題をありがとう! この問題は、元の問題に関連しないコメントを防ぐためにロックされています。 これが最新バージョンのIonicで引き続き問題になる場合は、新しい問題を作成し、テンプレートが完全に入力されていることを確認してください。

このページは役に立ちましたか?
0 / 5 - 0 評価