gpt4 book ai didi

java - 未找到 native 方法

转载 作者:行者123 更新时间:2023-12-02 06:19:56 24 4
gpt4 key购买 nike

我有一个小的 JNI 文件,其中包含一个将 char 数组转换为字节数组的 native 函数(因此我可以将其发送到我的 C++ 客户端)。

定义如下:

JNIEXPORT jbyteArray JNICALL Java_com_example_comtesttcp_communicationmoduleTCPIP_ConvertString(
JNIEnv * env, jobject,
jcharArray Buffer)

包名称(加载库的位置是:

package com.example.communicationmoduleTCPIP

该类的原生定义如下:

// Load helper functions library
static {
System.loadLibrary("HelperFunctions");
}


public native byte[] ConvertString(char[] Buffer);

但是当调用 ConvertString 函数时,我收到以下错误:

01-13 21:07:21.890: W/dalvikvm(22611): No implementation found for native Lcom/example/communicationmoduleTCPIP/communicationmoduleTCPIP;.ConvertString:([C)[B
01-13 21:07:21.890: W/dalvikvm(22611): threadid=11: thread exiting with uncaught exception (group=0x412b52a0)
01-13 21:07:21.900: E/AndroidRuntime(22611): FATAL EXCEPTION: Thread-821
01-13 21:07:21.900: E/AndroidRuntime(22611): java.lang.UnsatisfiedLinkError: Native method not found: com.example.communicationmoduleTCPIP.communicationmoduleTCPIP.ConvertString:([C)[B
01-13 21:07:21.900: E/AndroidRuntime(22611): at com.example.communicationmoduleTCPIP.communicationmoduleTCPIP.ConvertString(Native Method)
01-13 21:07:21.900: E/AndroidRuntime(22611): at com.example.communicationmoduleTCPIP.communicationmoduleTCPIP.SendBuffer(communicationmoduleTCPIP.java:164)
01-13 21:07:21.900: E/AndroidRuntime(22611): at com.example.communicationmoduleTCPIP.communicationmoduleTCPIP.RunServer(communicationmoduleTCPIP.java:107)
01-13 21:07:21.900: E/AndroidRuntime(22611): at com.example.communicationmoduleTCPIP.communicationmoduleTCPIP.run(communicationmoduleTCPIP.java:368)
01-13 21:07:21.900: E/AndroidRuntime(22611): at java.lang.Thread.run(Thread.java:856)

问题可能是类(communicationmoduleTCPIP)是一个可运行的类吗?我不在类中运行并具有以下定义(当我注释 native 函数时服务器运行良好)

public class communicationmoduleTCPIP extends communicationmodule implements Runnable

我在网上浏览了一下,在阅读了一些帖子后,我认为定义是正确的,有人可以告诉我我做错了什么吗?欢迎提出任何建议。

最佳答案

native 方法名称应与类全名匹配:Java_com_example_communicationmoduleTCPIP_communicationmoduleTCPIP_ConvertString

关于java - 未找到 native 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21100542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com