没有人知道这个so文件应该在android平台的哪一层,如何和apk一起打包吗

解决方案 »

  1.   

    http://www.eoeandroid.com/archiver/tid-2716.html
      

  2.   

    比如你的so是libname.so,如果是armeabi的编译器,那就把so放在工程目录下libs->armeabi文件里
    程序中使用:
    就直接System.loadLibrary("name");//注意这里不能有lib的前缀,但是so的名字里要加lib如果是mips的编译器,就放在libs->mipos文件中,使用也是loadLibrary这样安装完apk,so会自动放在手机的data/data/packagename/libs目录下
      

  3.   

    在工程下创建libs文件夹,在再libs下创建armeabi文件夹,so文件就是放在armeabi文件夹下。这个方法如楼上所言。还有可以放在/system/lib/文件夹下,这个需要权限
    模拟器可以
    打开命令行:
    >emulator -partition-size 256 -avd avd_name模拟器启动之后,打开另一个命令行:
    >adb remount
    >adb push C:\YOUR_SO.so /system/lib
    这种方法加载多个SO相互调用的情况。
      

  4.   

    dinjay,你的意思是我的应用程序只要System.loadLibrary("name"),通过ADB安装APK就直接可以安装到data/data/packagename/libs?
      

  5.   

    把so放在工程目录下libs->armeabi文件里, 通过adb install 安装APK就可以安装到data/data/packagename/libs下;
    应用程序调用 System.loadLibrary("name"),是用来加载这个so的。
      

  6.   

    你只要把so放在你工程的libs->armeabi目录下就可以了,build后生成的apk就会自动把so打包进去,安装apk到模拟器或者手机后,系统会自动复制so文件到data/data/packagename/libs下
      

  7.   

    那如果我有J2ME上的jar,现在想把它移植到android平台上,如果不用C/C++开发so,有什么办法可以快速移植这些jar过来?它应该以什么形式的库提供呢