热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于短信猫MyMondem.SetThreadMode报错的解决方案

最近项目里面发短信用到了短信猫,按照厂商提供的demo,进行了测试,可以发。满心欢喜的把短信猫的程序架在项目当中,遇到了第一个错误,java.lang.UnsatisfiedLin

       最近项目里面发短信用到了短信猫,按照厂商提供的demo,进行了测试,可以发。满心欢喜的把短信猫的程序架在项目当中,遇到了第一个错误,java.lang.UnsatisfiedLinkError: no MonDem in java.library.path,造成这个错误的原因就是没有将厂商提供的MonDem.dll放到java.libary.path所在目录下(ps:查看所包含的目录可用System.getProperty("java.library.path")代码进行查看,放到任意一个目录即可),第一个错误搞定。接着就遇到了第二个错,关于Mytest.SetThreadMode(1),出现这个问题,原因是jni调用dll里面的方法的时候,没有找到SetThreadMode这个方法,下面引用一位网友的回答:

............................................................................................................................................

注:如果不是在当前工程的根目录下,则javah需要加路径,如:
  例:TestDll 的Package为:com
  首先在C:\j2sdk1.4.0-rc\bin>下新建目录:com
  并拷贝TestDll.class到C:\j2sdk1.4.0-rc\bin\com
  其次在CMD下,执行
  C:\j2sdk1.4.0-rc\bin>javah com.TestDll,
  在C:\j2sdk1.4.0-rc\bin下生成com_TestDll.h(结构为package_classname)
  最后com_TestDll.h加入到DLL中去,生成新的DLL

............................................................................................................................................

说的就是dll调用函数的时候,会根据完整的路径去调用函数,如果你架在自己的项目里面,那调用dll的时候,因为有了自己的报名,和dll里面的就不一样了,于是乎就找不到dll里面的函数,所以就报了上面这个错。

这里根据自己的解决问题的经验,有两种办法,

第一,就是将厂商提供的文件,放到src目录下面,这样就不会存在自定义的报名;

第二,根据上面引用网友的回答,重新编译生成dll,如果对jni不熟悉,可以采取第一种方式。

下面给出一位同行写的关于jni的文章,有兴趣的可以去看看。

http://www.pconline.com.cn/pcedu/empolder/gj/java/0506/642328.html


推荐阅读
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Windows 7 部署工具DISM学习(二)添加补丁的步骤详解
    本文详细介绍了在Windows 7系统中使用部署工具DISM添加补丁的步骤。首先需要将光驱中的安装文件复制到指定文件夹,并进行挂载。然后将需要的MSU补丁解压并集成到系统中。文章给出了具体的命令和操作步骤,帮助读者完成补丁的添加过程。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • intellij idea的安装与使用(保姆级教程)
    intellijidea的安装与使用(保姆级教程)IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gi ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
author-avatar
nowemf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有