windows android直接手动编译JNI successfully ever(long long ago)(vs 编译器)

xiaoxiao2021-02-28  91

D:\programming\java\YourSafe>ndk-build [armeabi] Compile++ thumb: hello <= hello.cpp [armeabi] StaticLibrary : libstdc++.a [armeabi] SharedLibrary : libhello.so [armeabi] Install : libhello.so => libs/armeabi/libhello.so 编译前配置的mk文件:Android.mk(android的a要大写) LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := hello LOCAL_SRC_FILES := hello.cpp include $(BUILD_SHARED_LIBRARY) 编译过程: 编译class文件得到jni文件。 把编译好jni的c的头文件放在项目根目录jni文件夹下,没有jni文件夹就自己创建一个。 接下来,编译得到so文件,在项目根路径下编译啊(也许还要设置NDK_PROJECT_PATH环境变量指向你的项目根路径!) 必须在项目的根路径编译:parentPath\ndk-build(ndk-build为ndk下文件配置到环境变量path中可随处使用) eg.D:\androidProject\ndk-build 接下来就是自动编译了,是在windows下编译 --遇到问题上面已经显示了: 解决问题1:版本问题:本jni编译器只支持android-15以上,所以设置AndroidManifest.xml文件中的 <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21" />//设置minSdkVersion到合适版本 --遇到问题2:APP_BUILD_SCRIPT points to an unknown file就是Android.xml文件名a要大写。 --遇到问题3:代码错误,漏写变量啊,错误函数啊,这个编译器应该会指出,照提示修改。 编译后会有obj文件夹,运行程序会自动将so文件加载到libs文件下。 编译后obj文件路径: obj/local/armeabi/objs --hello --hello.o --hello.o.d --libhello.so --libstdc++.a 编译后的so文件路径: libs/armeabi/libhello.so

转载请注明原文地址: https://www.6miu.com/read-17913.html

最新回复(0)