2016-07-20 14 views
0

すべてのパス、バージョン、および候補を試して確認した後、Androidでコードオーダーの要件がまだ満たされていません。これはOSX 10.10.5とAndroid SDK/Studioとcordovaのクリーンインストールです。 Appleの推奨(export JAVA_HOME = /usr/libexec/java_home -v 1.8)と、失敗した結果が同じパスをダイレクトしてみました。両方のjava/javacがJDKパスのbinディレクトリにあることを確認してください。Cordova/Android OSXおよびPATH/JAVA_HOMEでJDKが見つかりません。

sh-3.2# cordova requirements 
Requirements check results for android: 
Java JDK: not installed 
Failed to run "java -version", make sure that you have a JDK installed. 
You can get it from: http://www.oracle.com/technetwork/java/javase/downloads. 
Your JAVA_HOME is invalid: /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home 

Android SDK: installed 
Android target: installed android-9,android-10,android-19,android-22,android-23,android-24,Google Inc.:Google APIs:22,Google Inc.:Google APIs:23 
Gradle: installed 
Error: Some of requirements check failed 

sh-3.2# echo $PATH 
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/dzhon/bin:/opt/dzhon/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin:/Users/rob/Library/Android/sdk/tools:/Users/rob/Library/Android/sdk/platform-tools:/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/bin:/Users/rob/Documents/software/apache-ant-1.9.7/bin 

sh-3.2# echo $JAVA_HOME 
/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home 

sh-3.2# java -version 
java version "1.8.0_102" 
Java(TM) SE Runtime Environment (build 1.8.0_102-b14) 
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode) 

sh-3.2# javac -version 
javac 1.8.0_102 

sh-3.2# node -v 
v5.3.0 

sh-3.2# cordova -v 
6.2.0 

と〜/ .bash_profileの中:

sh-3.2# ls -la /System/Library/Frameworks/JavaVM.framework/Versions/ 
total 32 
drwxr-xr-x 11 root wheel 374 20 Jul 11:54 . 
drwxr-xr-x 12 root wheel 408 6 Jan 2016 .. 
lrwxr-xr-x 1 root wheel 10 26 Mar 2015 1.4 -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10 26 Mar 2015 1.4.2 -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10 26 Mar 2015 1.5 -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10 26 Mar 2015 1.5.0 -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10 26 Mar 2015 1.6 -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10 26 Mar 2015 1.6.0 -> CurrentJDK 
drwxr-xr-x 8 root wheel 272 6 Jan 2016 A 
lrwxr-xr-x 1 root wheel 1 26 Mar 2015 Current -> A 
lrwxr-xr-x 1 root wheel 59 20 Jul 11:54 CurrentJDK -> /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents 

GitHubの上コルドバ - アンドロイドのためのソースを掘りで唯一のものである:

export ANT_HOME=/Users/rob/Documents/software/apache-ant-1.9.7 
    export JAVA_HOME=`/usr/libexec/java_home -v 1.8` 
    export ANDROID_HOME=/Users/rob/Library/Android/sdk 
    export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:${JAVA_HOME}/bin:$ANT_HOME/bin 

はまた、すべてのシンボリックリンクをチェックしていますcheck_reqs.jsのエラーメッセージは次のとおりです。

Failed to run "javac -version", make sure that you have a JDK installed. 

はなく、それが現在のレポートとして:

Failed to run "java -version", make sure that you have a JDK installed. 

すべてのヘルプは大歓迎します。 ロブ

+0

私はJDK 1.7にアップグレードすることなくダウングレードしました。 JDK 1.6へのダウングレードは、それを許可します。これが誰かを助けることを望みます。それでも最新のJDKを使用して解決したいと思っています。 – rgillan

+0

となりました。他のコードビルドエラーがあり、JDK 1を使用して修正されています。8、元の問題に戻って – rgillan

答えて

0

多くの問題があります。 check_reqs.jsは、プラットフォーム/環境チェックが完了した場所です(app/platforms/android/cordova/lib /)。 98行目のforgivingWhichSync( 'javac')の呼び出しは、(Current、CurrentJDKではなく)Current以外のJDKリンクを返していました。 /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/javac

それをCurrentJDKする/System/Library/Frameworks/JavaVM.framework/Versions/の現在のシンボリックリンクをrepointingことで

は、この最初の問題を修正:

lrwxr-xr-x 1 root wheel 10 21 Jul 12:03 Current -> CurrentJDK 
lrwxr-xr-x 1 root wheel 59 21 Jul 12:06 CurrentJDK -> /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents 

次の問題は、tryCommandメソッドのテストのjavacとの問題でした。正しく記述されているように、javac -versionはstderrの情報を返します。 (少なくともOSX上の)問題は、呼び出しもerrに情報を返すライン44にchild_process.execすることです:errが非であれば、このchild_process.execへのコールバックの取り扱いは常にエラーを引き起こした

Error: Command failed: /bin/sh -c javac -version 
javac 1.8.0_102 
javac: no source files 
Usage: javac <options> <source files> 
where possible options include: 
    -g       Generate all debugging info 
    -g:none     Generate no debugging info 
    -g:{lines,vars,source}  Generate only some debugging info 
    -nowarn     Generate no warnings 
    -verbose     Output messages about what the compiler is doing 
    -deprecation    Output source locations where deprecated APIs are  used 
    -classpath <path>   Specify where to find user class files 
    -cp <path>     Specify where to find user class files 
    -sourcepath <path>   Specify where to find input source files 
    -bootclasspath <path>  Override location of bootstrap class files 
    -extdirs <dirs>   Override location of installed extensions 
    -endorseddirs <dirs>  Override location of endorsed standards path 
    -d <directory>    Specify where to place generated class files 
    -encoding <encoding>  Specify character encoding used by source files 
    -source <release>   Provide source compatibility with specified release 
    -target <release>   Generate class files for specific VM version 
    -version     Version information 
    -help      Print a synopsis of standard options 
    -X       Print a synopsis of nonstandard options 
    -J<flag>     Pass <flag> directly to the runtime system 

null: if(err)d.reject(new CordovaError(errMsg)); catchStderrフラグが設定されていない場合にのみ、このエラーをトリガするようにこれを変更すると、javacのテストが正しく処理されるようになりました: if(err & &!catchStderr)d.reject(new CordovaError(errMsg));

と今の成功:あなたコルドバプラットフォームはAndroidの追加が、少なくともそれが今ではすべてを見つけることだとき

sh-3.2# cordova requirements 

Requirements check results for android: 
Java JDK: installed . 
Android SDK: installed 
Android target: installed android-9,android-10,android-16,android-18,android-19,android-22,android-23,android-24,Google Inc.:Google APIs:16,Google Inc.:Google APIs:18,Google Inc.:Google APIs:22,Google Inc.:Google APIs:23 
Gradle: installed 

は残念ながら、プロジェクトごとにcheck_reqs.jsを編集する必要があります。

0

OSXでCordovaバージョン7とJDK 1.8u131をインストールしたところ、すべてがうまく機能しました。何も変更または構成する必要はありませんでした。コルドバの古いバージョンに問題があった可能性があります。

関連する問題