我用的是Cygwin编译编译文件生成lib*.so文件的。c版本已经会用了。但是c++版本老是通不过;Android.mk 文件:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.cppinclude $(BUILD_SHARED_LIBRARY)
c++源文件没变,只是改变了后缀名 hello-jni.cpp:
#include <string.h>
#include <jni.h>jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
希望高手指践,我感觉不是在mk文件中设置些什么就是在cPP文件中设置。
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.cppinclude $(BUILD_SHARED_LIBRARY)
c++源文件没变,只是改变了后缀名 hello-jni.cpp:
#include <string.h>
#include <jni.h>jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}
希望高手指践,我感觉不是在mk文件中设置些什么就是在cPP文件中设置。
解决方案 »
- android虚拟机能在retina MacBook pro上跑吗?
- android模拟器与真机
- 怎么才能防止重复点击事件
- 怎样列出/data/data/mypackage/files目录下的文件结构
- 在做手机微博,在做个人中心的时候出错了
- 怎么在JAVA代码里动态修改 LinearLayout 的 style?
- Help! SD卡问题
- Java连续发送post遇到的问题
- Android初学者,做一个什么APP可以将Android大部分知识都用上?
- 求救:webView的setWebViewClient与registerHandler冲突么?
- 各位谁有这个帖子的代码?关于弹性ListView的
- Android学习困惑
however possible to specify a different one by defining the variable
LOCAL_DEFAULT_CPP_EXTENSION. Don't forget the initial dot (i.e. '.cxx'
will work, but not 'cxx').翻译:
请注意,C + +源文件的默认扩展名是'的。cpp'。不过,可以通过定义指定一个不同的变量LOCAL_DEFAULT_CPP_EXTENSION之一。不要忘了初始点(即'。CXX来'会的工作,而不是'CXX来')。
我在mk文件中定义了 LOCAL_DEFAULT_CPP_EXTENSION := .cpp。还是会出错。
_Java_com_example_hellojni_HelloJni_stringFromJNI这个和java中的native函数:
public native String stringFromJNI();
就对应起来了, NDK可以自动做。但是C++因为支持函数重载,一般将参数类型也编译生成到符号链接中去了,可能的符号叫:
_Java_com_example_hellojni_HelloJni_stringFromJNI_JNIEnvXXX_jobjXXX对应不起来, 会有问题。(以上只是我的推断, 一般在运行时出问题, 编译还可以)最好还是将错误贴出来看一下。
Administrator@oioioi2110 ~
$ cd $ANDROID_NDK_ROOTAdministrator@oioioi2110 /cygdrive/f/android-ndk-1.6_r1
$ make APP=hello-jni
Android NDK: Building for application 'hello-jni'
make: *** No rule to make target `apps/hello-jni/project/jni/hello-jni.c', neede
d by `out/apps/hello-jni//objs/hello-jni/hello-jni.o'. Stop.上面的是修改成的cpp之后的
////////////////////////////////////////////////////////////////////////////////下面是源文件c的
Administrator@oioioi2110 /cygdrive/f/android-ndk-1.6_r1
$ make APP=hello
Android NDK: Building for application 'hello'
Compile thumb : hello-jni <= apps/hello/project/jni/hello-jni.c
SharedLibrary : libhello-jni.so
Install : libhello-jni.so => apps/hello/project/libs/armeabiAdministrator@oioioi2110 /cygdrive/f/android-ndk-1.6_r1
$
服务器端给手机客户端另一套加密方案
做一个桥梁中转站,然后这个桥梁不调用window内核里的东东做个加密和解密的函数,这样android和桥梁进行通信,然后桥梁在和服务器同信!! 不知道可行不?还希望高人指教,万分感谢!!!