欲在Android上调用C++或者C的动态库,在Android调用.so的文件已经可以。但是调用.dll的文件还是不行,-------------------导出的动态库与调用的名称已经相同已经放置过的路径有1. system32下2. 导出的类(.class)目录下3. java源文件的目录下.4. 在配置Java Build Path选项卡处更改但最后还是在LoadLibrary处抛出异常,可以查看到提示信息如下:06-27 09:50:57.980: ERROR/AndroidRuntime(837): Caused by: java.lang.UnsatisfiedLinkError: Library Jni_Stduy not found
06-27 09:50:57.980: ERROR/AndroidRuntime(837):     at java.lang.Runtime.loadLibrary(Runtime.java:489)
06-27 09:50:57.980: ERROR/AndroidRuntime(837):     at java.lang.System.loadLibrary(System.java:557)
06-27 09:50:57.980: ERROR/AndroidRuntime(837):     at Jni_Stduy.Pg.Jni_Study.<clinit>(Jni_Study.java:10)在网上查了好多信息均不能解决这个问题~ 在此,求高人解答!提前致谢!

解决方案 »

  1.   

    不管调用啥,你那个库文件是ARM交叉编译器编译的吗
      

  2.   

    你可以放在assets中,或则res中建立一个raw文件,放进去,然后启动程序的时候,拷贝到私有目录下。 另外加一句,android 支持dll的加载吗?
      

  3.   

    调dll干嘛 是我out了么 
    Android只认识.so 不认识.dll, 心儿是linux啊
      

  4.   

    那个库文件不是Arm交叉编译器编译的,是windows下生成的库文件,而且是在模拟器上进行调用的~
      

  5.   

    谢谢你,我试一下,Android机器应该不支持Dll的吧,但是模拟器应该可以的~
    而且网上有很多例程,只不过我遇到了这样的麻烦呢~
      

  6.   


    是的,Android只认识.so,但那应该是在真机上吧,模拟器应该可以,网上很多这样的例子,就是遇到了这样的麻烦~ 郁闷那,谢谢你~
      

  7.   

    android只认在NDK或源码上编译的特定架构的(ARM,x86,MIPS...)so库文件。dll是根本不可能支持的。通用linux上的so,由于需要glibc,也是无法使用的。必须要重新编译。
      

  8.   

    模拟器和真机没太大差别。用qemu模拟的一个arm机器。另外:这个叫emulator,不是simulator。除了外围硬件没有外,其他方面,从软件角度看和真机一模一样。
      

  9.   

    http://blog.csdn.net/pcsuite/archive/2011/04/19/6332955.aspx
    难道这上面的都是错误的?
      

  10.   

    上面的没说是用在android里的 android下动态链接库是用arm交叉编译生成出来so后缀
      

  11.   

    难道android调用 dll文件不行吗?