PhoneGapアプリケーションにAndroidプラットフォームを追加するときに問題が発生しました。コマンドcordova platform add Androidを実行すると、CLIでこのメッセージが表示されます。
Checking Android requirements... (Error: An error occurred while listing Android targets)
パス変数にAndroid SDKの場所を追加しようとしています。
私を助けてください ! :D
Windows 7 64ビットで動作し、Android API 17、18、および19をAndroid SDKとともにインストールします。 3.2 phoneGapバージョンです。
動作するには、このcordovaコマンドはsdk/tools
ディレクトリにあるいくつかのプログラムを使用する必要があります。 Apache antもインストールする必要があります。
次に、これらのディレクトリをPATH
システム変数に追加する必要があります。
背景:
c:\sdk\Android
ディレクトリにインストールしたと仮定しましょうc:\tools\Apache-ant
ディレクトリにインストールしました次に、2つのシステム変数を作成する必要があります。
Android_HOME
値を持つc:\sdk\Android
ANT_HOME
値を持つc:\tools\Apache-ant
最後に、PATH
変数を変更し、PATH
'値の最後にこれら2つを追加する必要があります。
;%PATH%\tools;%ANT_HOME%\bin;%Android_HOME%\tools;%Android_HOME%\platform-tools
注: Linuxを使用する場合、命令は少し異なります。
その他のドキュメントが利用可能です こちら 。
まず、始めるにはいくつかのことが必要です。 Android SDK
および Apache Ant
です。もちろん、 Java SDK
(JDK)がインストールされている必要があります。
すべてのユーザーに対してAndroid SDKを機能させるには、/etc/environment
ファイルを変更してからPCを再起動する必要があります。しかし、あなたがその難しい方法を望まないなら、私に従ってください、あなた自身を唯一のPCユーザーと考えてください。そして、/home/YOUR_USERNAME/.bashrc
ファイルを使用して編集します。
さらに長い行を防ぐために、ホームパスを一度覚えてみましょう。これを/home/YOUR_USERNAME/.bashrc
に追加します。
export HOME="/home/YOUR_USERNAME"
次に、「$HOME
」と言いたいときに/home/YOUR_USERNAME directory
表記を使用します。
Android SDKアーカイブをダウンロードし、どこかに解凍します。たとえば、ホームディレクトリ$HOME/adt-bundle/
について考えてみましょう。
これらの行を$HOME/.bashrc
に追加します。
export Android_HOME="$HOME/Android-bundle/sdk/tools"
export Android_PLATFORM_TOOLS="$HOME/Android-bundle/sdk/platform-tools"
export PATH="$Android_HOME:$Android_PLATFORM_TOOLS:$PATH"
Android SDKと同様に、アーカイブをダウンロードし、ホームディレクトリに解凍します。次に、これらを.bashrc
に追加します。
export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"
apt-get
経由でインストールしたので、これは.bashrc
に影響しませんでした。
これらの変更を機能させるには、新しいターミナルウィンドウで作業するか(変更後に()を開く)、またはsource ~/.bashrc
を実行して現在の変更を有効にする必要がありますターミナルウィンドウ。
最後に、次のものが得られます。
ant
およびAndroid-bundle
.bashrc
に追加された数行:
export Android_HOME="$HOME/Android-bundle/sdk/tools"
export Android_PLATFORM_TOOLS="$HOME/Android-bundle/sdk/platform-tools"
export PATH="$Android_HOME:$Android_PLATFORM_TOOLS:$PATH"
export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"
Adt\sdk\toolsフォルダーから「Android」コマンドを実行し、最新のツールとSDKをインストールします。また、PATHに正しい変数があることを確認してください。
このためには、ANTをインストールする必要があります。Java JDKとAndroid SDKがインストールされている必要があります
Java_HOME(C:\ Program Files\Java\jdk)
ANT_HOME({ant location}\Apache\apache-ant)
Android_HOME({Android SDKの場所}\Android-sdk)
これらを%ANT_HOME%/ bin;%Android_HOME%\ tools;%Android_HOME%\ platform-tools;%Java_HOME%\ binなどのPATH変数に追加します
Cmdを閉じて再度開き、コマンドを再度実行します。
これがあなたの問題かどうかはわかりませんが、cordovaライブラリキャッシュが破損したもので汚染されると、同様のエラーが発生します。これを修正するには、cordovaキャッシュを削除するだけで、次回「cordova」を使用するときに自動的に再入力されます。
OS Xでは、このディレクトリは〜/ .cordovaです。 Windowsでは、まだユーザーのホームディレクトリにある.cordovaであると想定しています。
答えは「上記のすべて」です。環境変数で説明したとおりに実行しますが、これも実行します。
C:\ Users {YOUR_NAME} .cordova\lib\Android\cordova\3.5.0\framework project.propertiesファイルを編集し、target = Android-19をtarget = Android-20に変更します。
おそらく、この小さな問題が解決されるまで、Android SDKの次のレンディションでもこれを変更する必要があります。
パス変数が指示どおりに設定されていても、同じ問題がありました。複数のファイルを処理した後、ようやく解決しました。私(Windows 7エンタープライズ64ビット)の場合、check_reqs.jsおよびcreate.js from "C:\ Users\.cordova\lib\Android\cordova\3.5.0\bin\lib\" Android.batの絶対パスを含むフォルダー。私のAndroid SDKは、「C:\ Android\android-sdk」の下にあります。
Check_reqs.jsで変更しました
child_process.exec('Android list targets', function(err, stdout, stderr) {
に
child_process.exec('C:\\Android\\Android-sdk\\tools\\Android.bat list targets', function(err, stdout, stderr) {
Create.jsでステートメントを変更しました
return exec('Android update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');
に
return exec('C:\\Android\\Android-sdk\\tools\\Android.bat update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');
また、絶対パスにあるこれらの二重の「\\」を忘れないでください
長い苦労の末、上記のすべての提案を絶望的に何度も繰り返した後、私は単にcmdを管理者としてオープンしました。動いた。私はこのPCを手に入れる前に「須藤」にあまりにも慣れてしまったと思います。
この問題に遭遇した人のために、役に立つものを追加します。私の場合は、すべての変数が適切に設定されており、Androidプラットフォームを追加できず、アバストアンチウイルスとパフを無効にしました!すべてがスムーズに流れ、起こっていたのは、アンチウイルスがプラットフォームの作成をブロックしていたことです。
私にとっても重要なのは、PCを再起動することでした。 ;)
よろしく。
Cygwin/Windows 7の問題に気付きました。問題は、CygwinシェルとMS-DOSシェルが.batファイルを処理する方法がわずかに異なることに起因しています。
「プラットフォームの追加」中に、cordovaは「Android」を呼び出します。
C:\Users\xxx\.cordova\lib\Android\cordova\3.4.0\bin\lib\check_reqs.js
「Androidリストターゲット」を呼び出す場所(73行目)
「Android」は/xx/Android-sdk/tools/Android.batまたはxx:\ Android-sdk\tools\Android.batに解決されるはずです。 (実際、MS-DOSコマンドシェルで「Android」を実行できますが、Cygwin Shellでは実行できません。そこで「.bat」を追加する必要があります。)
「.bat」なしの「Android」は、Android.exeが存在しないため(.batのみが存在するため)、Cygwin Shellで失敗します。 73行目を変更して「Android.batリストターゲット」を呼び出すと、問題が解決します(または合理的なエラーメッセージが表示されます)。
別の回避策は、Cygwin Shellの代わりにMS-DOS Shellでcordovaを実行することです。
この問題は通常、Android SDKにPATH変数が設定されていないために発生します。
export HOME="/home/yourname"
export Android_HOME="$HOME/Android-bundle/sdk/tools"
export Android_PLATFORM_TOOLS="$HOME/Android-bundle/sdk/platform-tools"
export PATH="$Android_HOME:$Android_PLATFORM_TOOLS:$PATH"
export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"
ここに解決策のリストがありますので、私のものを追加します。私が試してみるまで、それは私にとって明らかではありませんでした。 %ANT_HOME%\ bin;%Android_HOME%\ tools;%Android_HOME%\ platform-toolsを、システムの変数ではなく、USER PATH変数に追加する必要があります。システムPATH変数は、USER PATH変数を自動的に連結し、変数をその値に変換します。それが誰かを助けることを願っています。追伸私のOSはWin 7x64です
受け入れられた答えは、良い点です。
スクリーンショットで非常によく説明されている別のページに出くわしました。
参照できます http://bealers.com/2014/06/phonegap-Android-development-environment-for-windows/