7

Android ndk プロジェクトで「タイプ 'size_t' を解決できませんでした」というエラーが表示されますが、既にライブラリ パスを追加しています。

/Users/ademar/android-ndk-r8e/platforms/android-8/arch-arm/usr/include
/Users/ademar/android-ndk-r8e/sources/cxx-stl/stlport/stlport
/Users/ademar/android-ndk-r8e/sources/cxx-stl/gnu-libstdc++/4.7/include

なぜこのエラーが発生するのかわかりません。


エラーが発生するコード:

static inline bool simplejson_wcsnlen(const wchar_t *s, size_t n)

ここで説明されているヘッダーをそれぞれ追加しましたが、まだ機能していません。


私は次のことを試しました:

#include <string.h>
#include <jni.h>
#include <android/log.h>
#include <iostream>
#include <stdio.h>

extern "C" {
    JNIEXPORT jstring JNICALL Java_xxx_getStringFromJNI(JNIEnv* env, jobject thiz, jstring param) {
        size_t x;
        return env->NewStringUTF("test");
    }
}

それも機能しません...

4

1 に答える 1

17

size_t は、コンパイラ固有の stddef.h で定義されています。これをインクルード パスに追加するには、/toolchain//prebuilt//lib/ gcc ///include をパスに追加する必要があります。

たとえば、ndk を使用して 64 ビット Windows マシンで Android アプリをビルドするには<NDK-PATH>\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\lib\gcc\arm-linux-androideabi\4.8\include、パスに追加する必要があります。

于 2013-09-09T20:52:33.977 に答える