AndroidStudio之NDK常見編譯錯誤
1、執行ndk-build 提示error: request for member 'FindClass' in something not a structure or union
/Users/lvxiangan/Workspace/Android_Studio/NDK/app/src/main/jni/test.c:33:30: error: member reference base type 'JNIEnv' (aka 'const struct JNINativeInterface *') is not a structure or union
jclass native_class = env->GetObjectClass(contextObject);
~~~^ ~~~~~~~~~~~~~~
/Users/lvxiangan/Workspace/Android_Studio/NDK/app/src/main/jni/test.c:34:26: error: member reference base type 'JNIEnv' (aka 'const struct JNINativeInterface *') is not a
structure or union
jmethodID pm_id = env->GetMethodID(native_class, "getPackageManager", "()Landroid/content/pm/PackageManager;");
~~~^ ~~~~~~~~~~~
/Users/lvxiangan/Workspace/Android_Studio/NDK/app/src/main/jni/test.c:35:25: error: member reference base type 'JNIEnv' (aka 'const struct JNINativeInterface *') is not a
structure or union
jobject pm_obj = env->CallObjectMethod(contextObject, pm_id);
~~~^ ~~~~~~~~~~~~~~~~
/Users/lvxiangan/Workspace/Android_Studio/NDK/app/src/main/jni/test.c:36:26: error: member reference base type 'JNIEnv' (aka 'const struct JNINativeInterface *') is not a
structure or union
錯誤原因:env變數在C和C++ 語法表達不一致引起。
C++ :env->FindClass("java/lang/String")
C語言:(*env)->FindClass(env, "java/lang/String")
2、No rule to make target needed by *.o
make: *** No rule to make target `x x x/xxxx/xxx/xx.c', needed by `x x x/xxxx/xxx/xx.c.o'. Stop.
錯誤原因:Android.mk沒有修改檔案字尾名,如原來是LOCAL_SRC_FILES := test.c,修改成
step1)LOCAL_SRC_FILES := test.cpp
step2)刪除/app/src/main/obj/local 資料夾
3、返回一個字串報錯: error: too many arguments to function call, expected single argument 'bytes', have 2 arguments
return env->NewStringUTF(env,"This is my first NDK Application");
~~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/lvxiangan/ProgramFiles/AndroidStudio/Sdk/ndk-bundle/sysroot/usr/include/jni.h:840:5: note: 'NewStringUTF' declared here
jstring NewStringUTF(const char* bytes)
^
1 error generated.
相關文章
- opencv 編譯常見錯誤OpenCV編譯
- PHP編譯安裝時常見錯誤解決辦法,php編譯常見錯誤PHP編譯
- PHP編譯configure時常見錯誤,和PHP7.1.4 編譯安裝PHP編譯
- AndroidStudio使用NDK編譯C/C++程式碼使用原生庫Android編譯C++
- 【常見錯誤】--Nltk使用錯誤
- SSH常見錯誤
- MySQL 常見錯誤MySql
- ndk 常見問題
- AndroidStudio跳到錯誤位置Android
- libusb android ndk編譯--編譯mipsAndroid編譯
- ipvs編譯錯誤編譯
- Go常見錯誤集錦 | 字串底層原理及常見錯誤Go字串
- Go 常見錯誤集錦 | 字串底層原理及常見錯誤Go字串
- npm install 常見錯誤NPM
- Mysql:1236常見錯誤MySql
- AndroidStudio編譯時報錯Error:Please select Android SDKAndroid編譯Error
- PHP中介軟體ICE,ICE的安裝配置,ICE常見編譯和執行(異常)錯誤PHP編譯
- spring事務常見錯誤Spring
- 使用 CocoaPods 時常見錯誤
- mysql8 常見錯誤MySql
- MySQL 安裝常見錯誤MySql
- 常見的錯誤 SQL 用法SQL
- Go常見錯誤第15篇:interface使用的常見錯誤和最佳實踐Go
- 交叉編譯-Mac環境使用NDK編譯FFmpeg編譯Mac
- 常見的 PostgreSQL 升級錯誤SQL
- Shell:常見錯誤總結(一)
- 8種常見SQL錯誤用法SQL
- 搭建github部落格常見錯誤Github
- 變數命名以及常見錯誤變數
- NPM INSTALL常見錯誤(windows篇)NPMWindows
- 常見 HTTP 錯誤程式碼大全HTTP
- Android之NDK開發錯誤 error: unknown type name 'JNIEXPORT'AndroidErrorExport
- 這些常見的 Go 編碼錯誤,你犯過嗎(一)?Go
- IDEA報錯java: 編譯失敗: 內部 java 編譯器錯誤IdeaJava編譯
- AndroidStudio使用NDK報錯顯示mips64el-linux-android-strip''AndroidLinux
- mdxbuilder打包mdx時的常見錯誤UI
- 常見的錯誤日誌型別型別
- 常見的授權錯誤及原因