技术问答

问题描述 背景 我有一个Android项目,该项目使用JNI(使用NDK)在Java和C/C ++中代码. 我已经在Java侧创建了一个JNI JAVA包装器,它将单独使用JNI oprerations,而除了此包装器外,没有其他Java类可以直接访问JNI操作. > 问题 问题是,我希望创建此包装器的多个实例,而JNI部件应具有每个JNI包装器的实例. 这是一个问题,因为JNI部分在所有情况下都保存相同的字段. 问题 我如

2023-01-19  321
技术问答

问题描述 我有一个Eclipse RCP应用程序,该应用程序使用JNI使用一些本机库.这些是共享的库,它们相互动态链接.在Windows上,我将这些库(如*.dll文件)放在RCP启动器可执行文件(*.exe)文件旁边,然后通过System.load(“<absolute file path>”)加载它们.这很棒,因为启动器的位置似乎已添加到java.library.path中,因此库之间的动态链

2023-01-19  351
技术问答

问题描述 我有一个wav文件.如何将WAV文件转换为MP4文件容器格式,并使用Android中的ffmpeg将AAC作为音频流. 谢谢, 推荐答案 您需要编译 libfaac 如果您想具有体面的质量编码器.然后,像ffmpeg -i foo.wav -vn -acodec libfaac -ab BITRATE output.mp4之类的事情应该做技巧.

2023-01-19  424
技术问答

问题描述 我想将已经存在的多维数组从C ++返回到Java代码.我的代码如下: int cells [3][3] = {{0}}; int[][] Java_com_packagename_appname_GameView_addNew( JNIEnv *env, jobject, int row, int col, int val) { cells[row][col] = val;

2023-01-19  319
技术问答

问题描述 我正在使用此处接受的答案中的方法来构建Gameloop线程. 在Android服务类中停止/销毁线程的地方? 目前,我的线程基本上有时间,进行单个本机函数调用,以更新游戏逻辑,然后在调整后通过的时间睡觉. 我很好奇的是,由于我仍然对线程不太满意,这是否被Interrupt()杀死线程的速度如何?如果它位于本机函数中运行的代码的中间,它将在其中间停止,还是安全完成? 提前感谢 耶利米 推荐答案 不用担心, interr

2023-01-19  346
技术问答

问题描述 已引用 – > Javah在Jni中使用它时a> …和 ​​- > android-Javah没有找到我的班级 …我仍然无法获得javah工作.具体… 我的Java类位于这里: /Users/HKS/Code/MusicPlayer-Android/dspLibrary/src/main/java/com/company/audio/LibDS

2023-01-19  335
技术问答

问题描述 我在JNI方面执行了一些C代码功能,所有工作正常. public native String getMessage() 函数将字符串从JNI侧返回到Java侧,并且效果很好,所有其他JNI代码也可以正常工作.但是问题是我如何在不使用返回的情况下返回JNI函数中的字符串,因此 public native void getMessagewithoutReturn() 应该能够返回字符串.然后,我但是getMessageWit

2023-01-19  404
技术问答

问题描述 我正在研究一个基本应用程序,以创建Java VM并使用JNI启动C ++的Java程序.但是,我有一些编译错误: Error 6 error LNK2028: unresolved token (0A00000D) "extern "C" long __stdcall JNI_CreateJavaVM(struct JavaVM_ * *,void * *,void *)" (?JNI_CreateJavaVM@@

2023-01-19  381
技术问答

问题描述 我有一些使用本机组件的库,这些库是用NDK构建的,用于32位ARM架构. 现在,我们在现代设备上有64位处理器,所以我想知道库是否会工作.在我的情况下,我没有本机库的源代码文件,只有SO文件,我无法以64位构建它们. 那么,32位库会在64位处理器上运行吗?还是我必须重建它们? ** 编辑 ** 在我的情况下,我有以下内容: 1-我手动分发APK,尚未发布到Google Play. 2-该项目有两个本地库,

2023-01-19  397
技术问答

问题描述 我应该在GetIntArrayElements之后致电ReleaseIntArrayElements? JNIEXPORT void JNICALL Java_com_test_Example_func (JNIEnv *env, jobject jobj, jintArray javaArray) { jint *array = env->GetIntArrayElements(javaAr

2023-01-19  320