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

来源:互联网 发布:学数据库有什么用 编辑:程序博客网 时间:2024/06/06 09:06
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 := helloLOCAL_SRC_FILES := hello.cppinclude $(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



原创粉丝点击