StackOverFlow エキスパートの皆様、こんにちは。
私は Android プログラミングに非常に慣れていません。残念ながら、Android での最初のプロジェクトには C++ ライブラリの使用が含まれます。これらはサードパーティのライブラリであり、使用する必要があります。また、私は C++ に精通していません。Android SDK (v4.2.2 および APIv 17) と NDK (android-ndk-r8e) を正常にインストールしました。C++ コードをコンパイルして Eclipse プロジェクトをビルドし、Android デバイスでアプリケーションが実行されていることを確認できました。
しかし今日、一部の機能を動作させるには、C++ プリプロセッサ ディレクティブをコンパイルする必要があることを知りました。私が理解しているように、実際のコードのコンパイルの前に C++ プリプロセッサ ディレクティブが実行されます。Google のおかげで、プリプロセッサ ディレクティブを実行する方法は makeall.sh ファイルを変更することであることがわかり、次のようにしました。
ARCH="armeabi armeabi-v7a mips x86"
LIBDIR=../../mpcore/lib.android/libs
tmpdir=`mktemp -d /tmp/$0.XXXXX`
for arch in $ARCH; do
/Users/Desktop/android-ndk-r8e/ndk-build LOCAL_CPPFLAGS:=-DUSE_ORIGINAL_BACKGROUND LOCAL_LDFLAGS=-L$LIBDIR/$arch APP_ABI=$arch
cp libs/$arch/libsample.so $tmpdir/libsample.so.$arch
done
for arch in $ARCH; do
cp $tmpdir/libsample.so.$arch libs/$arch/libsample.so
done
rm -rf $tmpdir
ここで、USE_ORIGINAL_BACKGROUND は私の C++ ディレクティブの名前です。
makeall.sh を実行すると、うまくコンパイルされます (少なくともエラーは表示されません)。次に、Eclipse プロジェクトを開いて更新し、APK ファイルをビルドします。しかし、残念ながら、期待した結果は得られません。
すべての人への私の質問: 何か足りないものはありますか? makeall.sh を変更した方法は正しいですか?
この質問が皆さんにとって非常に初歩的なものである場合は、申し訳ありませんが、Android の学習と学習を進めるのに本当に役立ちます。よろしくお願いします