[解決済み] Android NDKでvectorのようなC++ヘッダをインクルードできない
質問
Android NDK プロジェクト (最新の NDK r5b を使用) で vector などの C++ クラスをインクルードしようとすると、次のようなエラーが表示されます。
Compile++ thumb : test-libstl <= test-libstl.cpp
/Users/nitrex88/Desktop/Programming/EclipseProjects/STLTest/jni/test-libstl.cpp:3:18: error: vector: No such file or directory
この問題をオンラインで報告した他の人々は、以下を追加することで成功したと主張しています。
APP_STL := stlport_static
を Application.mk ファイルに追加しました。これを実行し、APP_STL の他のすべての可能な値も試しました。プロジェクトをクリーンにして、NDK-build clean を実行し、obj と libs フォルダを削除しましたが、それでもコンパイル時にベクトル クラスを見つけることができません。NDK r5が出て以来)何週間もこの問題に取り組んでいますが、どなたかアドバイスがあれば本当に感謝します。ありがとうございます!
どのように解決するのですか?
可能です。ここでは、いくつかのステップバイステップを紹介します。
で $PROJECT_DIR/jni/Application.mkにあります。 :
APP_STL := stlport_static
stlport_sharedを使ってみましたが、ダメでした。libstdc++ と同じです。
で $PROJECT_DIR/jni/Android.mkにあります。 :
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.cpp
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
ここでは特に何もありませんが、ファイルが .cpp .
で $PROJECT_DIR/jni/hello-jni.cppにあります。 :
#include <string.h>
#include <jni.h>
#include <android/log.h>
#include <iostream>
#include <vector>
#define LOG_TAG "hellojni"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
#ifdef __cplusplus
extern "C" {
#endif
// Comments omitted.
void
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
std::vector<std::string> vec;
// Go ahead and do some stuff with this vector of strings now.
}
#ifdef __cplusplus
}
#endif
ここで唯一噛みついたのが#ifdef __cplusplusです。
ディレクトリに注意
コンパイルするには
ndk-build clean && ndk-build
.
関連
-
[解決済み] BottomSheetDialogFragmentの状態をexpandedに設定する。
-
[解決済み] DialogFragmentを正しく終了させるには?
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] onCreate(Bundle savedInstanceState)とは?
-
[解決済み] TextView.setTextSizeの挙動がおかしい - テキストビューのテキストサイズを画面ごとに動的に設定する方法
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] Android Lintが翻訳されていない文字列を訴えないようにする。
-
[解決済み] Android: xml リソースからの整数値
-
[解決済み] アンドロイドボタンセレクター
-
[解決済み] ブルートゥースアプリケーションのテストにアンドロイドエミュレータを使用するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AndroidにおけるViewPager2の適切な実装
-
[解決済み] 深くネストされたスタックから離れるとき、Fragmentのバックスタックをクリーンアップする方法はこれで良いのでしょうか?
-
[解決済み] CardView layout_width="match_parent "が親のRecyclerViewの幅と一致しない。
-
[解決済み] ViewPagerのアイテムを強制的に再インスタンス化する方法 [重複].
-
[解決済み] AppCompat-v7 21でアクションバー/ツールバーにアイコンを表示する。
-
[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する
-
[解決済み] Android StudioからADBを手動で再起動する方法
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] 文字列リソースにHTML?
-
[解決済み] <string> XMLで改行やタブを作るには(eclipse/android)?