技术问答

问题描述 我目前在调试一些依赖本机库的Android代码时遇到困难.特别是一个本地呼叫似乎容易出现这种”悬浮”错误.它通常表现为这样: threadid=2: spin on suspend #2 threadid=48 (pcf=3) 到目前为止,我尚未确定此处的失败,除了大约10条消息之后,我的应用程序遇到a SIGSTKFLT并退出.每次,第一个线程是GC,第二个线程是当前正在执行本机代码的任何线程.与

2023-01-20  290
技术问答

问题描述 错误我得到: 错误:未定义的引用’__android_log_print’ 我已经将此行添加到我的.cpp文件: #include <android/log.h> 我已经尝试了两者: __ android_log_print 和 __ android_log_write 我还在我的android.mk文件(我正在手动编译)中链接了登录库. local_ldlibs:= -llo

2023-01-20  269
技术问答

问题描述 我正在尝试在Android应用程序中调用本机C代码的Java方法.使用JNI,这听起来很简单,但是当最终调用方法本身时,我的代码总是会崩溃. 这是我的代码: 本机C代码: JNIEXPORT void JNICALL Java_com_path_to_my_package_renderStuff(JNIEnv* env, jobject jobj){ //... jclass clazz = env->FindCl

2023-01-20  247
技术问答

问题描述 我无法获得使用JNI的这两个缺点.我想进一步了解它们: 难以调试运行时错误 本地代码 JNI代码中的错误删除了整个JVM,并且没有提供任何优雅恢复的机制 推荐答案 难以调试 您需要一个C/C ++调试器来调试本机代码.不可能轻松地从Java到C/C ++代码. (尽管可以同时调试两个. JNI中的错误 您本机库中的不良C/C ++代码会导致JVM无法恢复的核心转储/分割故障,因此您的整个应用程序崩溃

2023-01-20  293
技术问答

问题描述 是否有一个非阻滞文件在Java中读取API?如果没有 推荐答案 否,FileChannel不扩展SelectableChannel. 可能是因为并非所有的OS都支持它. Windows确实可以,从理论上讲,您可以编写一个特定于Windows的C ++库,并通过JNI调用它,但是将其与java.nio集成在一起是很多工作. 我宁愿让一个工作线程将文件内容复制到a 管道并在管道的另一端进行非阻滞读数. 其他推荐答案 我的原

2023-01-20  242
技术问答

问题描述 我不是在问我可以在自己的计算机上找到它的地方,我问我可以得到它. 我已经完成了Google作业,但我没有在这些路径中找到标题.我的/系统/库/java/javavirtualmachines/…还有其他内容,我没有root的开发人员文件夹. 现在,我很确定我没有安装这些标题,我检查了MacOS开发人员网站,但我只找到了一些破裂的链接. 不应该在某个地方提供openjdk或sunjdk的jni.h标题吗? 推荐答

2023-01-20  255
技术问答

问题描述 所以我有这个C ++程序,该程序通过我的Java程序中的JNI调用,代码如下: JNIEXPORT jstring JNICALL Java_com_entrust_adminservices_urs_examples_authn_LdapAuthenticator2_takeInfo(JNIEnv *env, jobject obj, jstring domain, jstring id, jstring idca, j

2023-01-20  290
技术问答

问题描述 这是从.cpp file.i Am使用Visual Studio 10和Windows7 32位的错误,并从Eclipse Indigo 编译 AUWideString(JNIEnv* jni, jstring jstr) : mJni(jni), mJString(jstr), mString(0) { if (jstr != 0) { m

2023-01-20  237
技术问答

问题描述 我如何获得指向Java Bytebuffer内部阵列的指针? JNIEXPORT void JNICALL test(JNIEnv *env, jobject thiso) { jclass cls = env->FindClass("java/nio/ByteBuffer"); jmethodID aloc = env->GetStaticMethodID(cls, "allocateDire

2023-01-20  274
技术问答

问题描述 在今天之前,我将Eclipse 3.8与 sequoyah插件用于Android NDK项目. 但是今天,我决定将Eclipse用SDK和NDK释放到Juno. 我很高兴,然后我在ADT安装中看到 Android Native Tools ,它将像Sequoyah一样做相同的工作,但是具有调试功能. 我创建了新的Android项目来测试它. 添加Android Native Support使用Android.mk,.cpp

2023-01-20  280