18

Eclipse-android で ac プロジェクトをビルドしていますが、次のエラーが発生します。

これは ndk ビルド エラーです (私のコードとは関係ありません)

/Users/eladb/MyWorkspace/android-ndk-r8e/build/gmsl/__gmsl:512: *** non-numeric second argument to 'wordlist' function: ''. Stop.

試した

android-ndk-r8b

android-ndk-r8e

どうすればこれを修正できますか?

4

6 に答える 6

27

これは、 がからプロパティをr8d NDK適切に取得しないことによる既知の問題です。android:minSdkVersionAndroidManifest.xml

この問題を回避するには、ファイル /android-ndk-r8d/build/gmsl/__gmsl の 512 行目を次のように変更します。

int_encode = $(__gmsl_tr1)$(wordlist 1,$(words $1),$(__gmsl_input_int))
于 2013-07-11T10:25:20.077 に答える
12

AndroidManifest に、次の行を追加します。

<uses-sdk android:minSdkVersion="3" />

これで問題は解決しました。新しく生成されたプロジェクトにはそのようなエラーがないため、通常、ダウンロードしたプロジェクトをインポートするときにこれが発生します。

詳細については、この問題はコマンドラインからも再現できます。

于 2013-07-11T08:33:36.837 に答える
1

ndk-build の XML 解析コードは空白の影響を受けやすいようです (r8e の時点)。マニフェストに次の行があると、このエラーが発生しました。

<uses-sdk android:minSdkVersion ="10" android:targetSdkVersion="11" />

minSdkVersion と = 記号の間の空白を削除して、次の行に置き換えると、問題はなくなりました。

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="11" />

うーん。

(受け入れられた回答で説明されているように)ndkにパッチを適用するか、アプリケーション側で回避策を実行するかは議論の余地があります。共有CIサーバーを含む、構築する必要があるいくつかの異なる環境を持つチームで作業しており、環境ごとおよび新しい開発者ごとにndkにパッチを適用したくなかったため、回避策を選択しました。ソロで作業する場合は、将来のプロジェクトでも修正されるため、受け入れられた回答の方が適切な場合があります。

于 2013-10-16T21:32:09.133 に答える