Cordova/Phonegap を使用して新しい Android プロジェクトを作成しようとしています。
cordova-2.9.0 と Mac 用の ADT Bundle をダウンロードしました。
ADT を ~/Developer/Android に抽出し、PATH に追加しました。
export PATH="$HOME/Development/Android/sdk/tools:$PATH"
export PATH="$HOME/Development/Android/sdk/platform-tools:$PATH"
次に、cordovacreateスクリプトを実行しようとしましたが、失敗しました。
→ bin sudo ./create ~/Projects/myproject/cordova-android com.mydomain.myproject myproject
Password:
BUILD FAILED
/Users/asgeo1/Development/Android/sdk/tools/ant/build.xml:714: The following error occurred while executing this line:
/Users/asgeo1/Development/Android/sdk/tools/ant/build.xml:728: Compile failed; see the compiler error output for details.
Total time: 1 second
An unexpected error occurred: ant jar > /dev/null exited with 1
Deleting project...
あまり役に立ちません。そこで、より多くの情報が出力されるように Cordovacreateスクリプトを編集します。
# COMMENTED OUT piping to /dev/null:
#
# compile cordova.js and cordova.jar
pushd "$BUILD_PATH"/framework # > /dev/null
ant jar #> /dev/null
popd #> /dev/null
create次に、スクリプトを再実行しました。
→ bin sudo ./create ~/Projects/myproject/cordova-android com.mydomain.myproject myproject
~/Downloads/cordova-2.9.0/cordova-android/framework ~/Downloads/cordova-2.9.0/cordova-android/bin
ビルドファイル: /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/build.xml
-ビルド前:
-チェック環境:
[checkenv] Android SDK ツール リビジョン 22.0.5
[checkenv] /Users/asgeo1/Development/Android/sdk にインストール
-設定:
[エコー] プロジェクト名: コルドバ
[gettype] プロジェクト タイプ: Android ライブラリ
-ビルドセットアップ:
[getbuildtools] 最新のビルド ツールの使用: 18.0.1
[エコー] Cordova のビルド ターゲットを解決しています...
[gettarget] プロジェクト ターゲット: Android 4.3
[gettarget] API レベル: 18
[エコー] - - - - -
[echo] 必要に応じて出力ディレクトリを作成しています...
[エコー] - - - - -
[エコー] Cordova の依存関係を解決しています...
[依存関係] ライブラリの依存関係:
[依存関係] ライブラリなし
[エコー] - - - - -
[echo] '${build.target}' でライブラリをビルドしています...
[subant] 反復するサブビルドはありません
-コード生成:
[mergemanifest] AndroidManifest ファイルに変更はありません。
[echo] aidl ファイルの処理...
[aidl] コンパイルする AIDL ファイルがありません。
[エコー] - - - - -
[echo] RenderScript ファイルの処理...
[renderscript] コンパイルする RenderScript ファイルがありません。
[エコー] - - - - -
[echo] リソースの処理...
[aapt] 変更されたリソースはありません。R.java と Manifest.java はそのままです。
[エコー] - - - - -
[エコー] BuildConfig クラスの処理...
[buildconfig] BuildConfig クラスを生成しています。
-プリコンパイル:
-コンパイル:
[javac] 104 個のソース ファイルを /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/bin/classes にコンパイルする
[javac] /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/src/com/squareup/okhttp/Connection.java:171: メソッドはそのスーパークラスのメソッドをオーバーライドしません
[javac] @Override public void close() throws IOException {
[javac] ^
また、上記のようなエラーが 40 個あり@overrideます。
Google でわかることから、これは jdk 1.6 以降で @override アノテーションが変更されたためです。(またはそのようなもの): @Overrideアノテーションでjavacが失敗するのはなぜですか
では、Android SDK の構成antが というファイルにあることがわかりましたbuild.xml。なんと、Java 1.5 用の設定がいくつかあります。
<property name="java.target" value="1.5" />
<property name="java.source" value="1.5" />
これらの値を 1.6 または 1.7 に変更すると、Cordovacreateスクリプトを再実行すると Java エラーが発生します。
-compile:
[javac] Compiling 104 source files to /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/bin/classes
[javac] javac: invalid source release: 1.7
[javac] Usage: javac <options> <source files>
私はここで本当に頭を悩ませています。私はJavaの専門家ではないので、ここで何が起こっているのかわかりません。
createOSX で Cordova Androidのスクリプトを実行する方法を知っている人はいますか?
アップデート
以下の @cartland のアドバイスに従った後、@Overrideエラーを取り除くことができました。ただし、最後のエラーが 1 つ発生します。
-compile:
[javac] Compiling 104 source files to /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/bin/classes
[javac] /Users/asgeo1/Downloads/cordova-2.9.0/cordova-android/framework/src/org/apache/cordova/InAppBrowser.java:523: error: cannot find symbol
[javac] settings.setPluginsEnabled(true);
[javac] ^
[javac] symbol: method setPluginsEnabled(boolean)
[javac] location: variable settings of type WebSettings
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] 1 error
私はそれが何であるかを試してみます-しかし、誰かが知っているなら、答えを投稿してください:)
更新 2
2番目のエラーが何であるかを知っています。ここで言及されています:https ://developer.motorolasolutions.com/thread/3640
Cordova 2.9.0 は Android SDK 18 と互換性がありません。Cordova 3.0.0 を Android SDK 18 で使用する必要があります (または、逆に Android SDK を 17 にダウングレードします)。