web-dev-qa-db-ja.com

cordovaプラットフォームの追加Androidターゲットのリスト中にAndroidが機能していません

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 AP​​I 17、18、および19をAndroid SDKとともにインストールします。 3.2 phoneGapバージョンです。

75
balasta75

動作するには、このcordovaコマンドはsdk/toolsディレクトリにあるいくつかのプログラムを使用する必要があります。 Apache antもインストールする必要があります。

次に、これらのディレクトリをPATHシステム変数に追加する必要があります。

背景:

  • Android SDKc:\sdk\Androidディレクトリにインストールしたと仮定しましょう
  • Apache antc:\tools\Apache-antディレクトリにインストールしました

次に、2つのシステム変数を作成する必要があります。

  1. Android_HOME値を持つc:\sdk\Android
  2. ANT_HOME値を持つc:\tools\Apache-ant

最後に、PATH変数を変更し、PATH '値の最後にこれら2つを追加する必要があります。

;%PATH%\tools;%ANT_HOME%\bin;%Android_HOME%\tools;%Android_HOME%\platform-tools

注: Linuxを使用する場合、命令は少し異なります。

その他のドキュメントが利用可能です こちら

167
l.cotonea

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のセットアップ

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"

Antのセットアップ

Android SDKと同様に、アーカイブをダウンロードし、ホームディレクトリに解凍します。次に、これらを.bashrcに追加します。

export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"

apt-get経由でインストールしたので、これは.bashrcに影響しませんでした。

変更を適用する

これらの変更を機能させるには、新しいターミナルウィンドウで作業するか(変更後に)を開く)、またはsource ~/.bashrcを実行して現在の変更を有効にする必要がありますターミナルウィンドウ。

まとめ

最後に、次のものが得られます。

  1. ホームディレクトリの2つのディレクトリ-antおよびAndroid-bundle
  2. .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"
    
42
shybovycha

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を閉じて再度開き、コマンドを再度実行します。

同様の PhoneGap/Cordova Android Development

21

これがあなたの問題かどうかはわかりませんが、cordovaライブラリキャッシュが破損したもので汚染されると、同様のエラーが発生します。これを修正するには、cordovaキャッシュを削除するだけで、次回「cordova」を使用するときに自動的に再入力されます。

OS Xでは、このディレクトリは〜/ .cordovaです。 Windowsでは、まだユーザーのホームディレクトリにある.cordovaであると想定しています。

4

答えは「上記のすべて」です。環境変数で説明したとおりに実行しますが、これも実行します。

C:\ Users {YOUR_NAME} .cordova\lib\Android\cordova\3.5.0\framework project.propertiesファイルを編集し、target = Android-19をtarget = Android-20に変更します。

おそらく、この小さな問題が解決されるまで、Android SDKの次のレンディションでもこれを変更する必要があります。

4
Tristan Isfeld

パス変数が指示どおりに設定されていても、同じ問題がありました。複数のファイルを処理した後、ようやく解決しました。私(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) + '"');

また、絶対パスにあるこれらの二重の「\\」を忘れないでください

3
508Ninja

長い苦労の末、上記のすべての提案を絶望的に何度も繰り返した後、私は単にcmdを管理者としてオープンしました。動いた。私はこのPCを手に入れる前に「須藤」にあまりにも慣れてしまったと思います。

2
Yuval Perelman

この問題に遭遇した人のために、役に立つものを追加します。私の場合は、すべての変数が適切に設定されており、Androidプラットフォームを追加できず、アバストアンチウイルスとパフを無効にしました!すべてがスムーズに流れ、起こっていたのは、アンチウイルスがプラットフォームの作成をブロックしていたことです。

私にとっても重要なのは、PCを再起動することでした。 ;)

よろしく。

2
Darq Roya

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を実行することです。

1
Charlie Dalsass

この問題は通常、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"
0
Bastin Robin

ここに解決策のリストがありますので、私のものを追加します。私が試してみるまで、それは私にとって明らかではありませんでした。 %ANT_HOME%\ bin;%Android_HOME%\ tools;%Android_HOME%\ platform-toolsを、システムの変数ではなく、USER PATH変数に追加する必要があります。システムPATH変数は、USER PATH変数を自動的に連結し、変数をその値に変換します。それが誰かを助けることを願っています。追伸私のOSはWin 7x64です

0
BillyZ

受け入れられた答えは、良い点です。

スクリーンショットで非常によく説明されている別のページに出くわしました。

参照できます http://bealers.com/2014/06/phonegap-Android-development-environment-for-windows/

0
Tejasvi Hegde