请问怎样在android平台上使用第三方jar包,为什么我在引入了,编译时没有错误,运行时就有错误,报无法实例化错误,请问这是什么原因?

解决方案 »

  1.   

    那位高手指点一下,为什么我把包引进来了,
    然后做了如下操作
    1、写了一个普通的java类调用引入进来的jar包,
    2、在android类中引用这个普通的类。
    编译没有问题,运行就报错,说找不到我写的这个普通的类。这是什么原因?
      

  2.   

    Android是支持Jar的在Eclipse里面右键点你的项目选择properties,然后选择library,点击你需要添加的jar包,加进去编译应该就可以了,你是这样加进来的么?
      

  3.   

    项目名称点右键-Build Path-Configure Build Path-Add External JARs
    我是这样引入的,没问题
      

  4.   

    我是这样引入的,但这个jar包好象不是在android平台上开发的,在j2se平台上可以正常运行
      

  5.   

    应该是没有问题的,我觉得还是可能你的程序逻辑是不是有问题,你应该断点或者log查查看究竟问题出在哪里~~
      

  6.   

    有些包应该是可以使用的,正如楼上说的引入且打入自己的APK中就没问题了。
      

  7.   

    为什么我的不行,我做一个实验,在android上调用java的Frame类,就不能正常运行。
    错误提示:
    11-19 01:40:24.023: WARN/dalvikvm(227): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
    11-19 01:40:24.023: ERROR/AndroidRuntime(227): Uncaught handler: thread main exiting due to uncaught exception
    11-19 01:40:24.063: ERROR/AndroidRuntime(227): java.lang.NoClassDefFoundError: java.awt.Frame
    11-19 01:40:24.063: ERROR/AndroidRuntime(227):     at com.example.push.PushService$1.onClick(PushService.java:43)
    11-19 01:40:24.063:
      

  8.   

    請問你引用的是什麼包。如果是 mail.jar 就別找原因了,不能用。
      

  9.   

    他为什么也提示没有找到类啊,我已经把jdk的jar包引入到android项目中来了啊?这是为什么?
      

  10.   

    這個問題你應該去閱讀 android framework 源碼會找到答案。
    它的框架裡面有這些包,所以不會被打進去。
    即使打進包裡面,執行起來也會出問題。android 有它自己的一套佈局方式,Layout類。mail 也是一樣,要用mail就得調用它的 mail應用程式,我是非常的反感Android的這種策略。像砣屎
      

  11.   

    是这样啊,那就是说,以前基于j2se,j2ee,j2me平台上开发绝大多数的程序和第三方插件(或jar包)都不能在android平台上运行了。
      

  12.   

    那这么说,基于java开源的一些项目都没有办法在android平台上运行了。
    一切都从零开始了。
      

  13.   

    由於前段時間曾為 使用第三方的 mail包遇到過這種問題。於是查閱過相關資料,其原因之一是我上面所講的Android的框架策略問題。但並不全面。也許 咖啡茶 兄所碰到的情況並不是這種,在此 關於 對咖啡茶兄的情況所作出草率的結論,表示歉意。這兩天對Android使用第三方jar包的問題,也一直牽腸掛肚,到底什麼樣的jar包可以用在Android平台上?
    我繼續查閱相關資料,及與國外開發者的交流。Android 的 davlkvm 與 我們標準的 jvm 所執行的bytecode格式是不樣的,且並不兼容。為此Android提供DX工具用於對標準.class文件格式的轉換。按照官方文檔操作,我們在工程在引入第三方包就可以使用了。於是我試過一些包,但大多不可以用。於是我用dx工具單獨做轉換操作,發現能單獨做轉換的jar包可以正常使用,然而大多數的jar包無法通過Dx工具的轉換。也就不能做第三方jar包引用。
    至於為什麼有的jar包不能通過 dx工具的格式轉換,我也不得而知了。期望大牛們能做進一步的研究。。
     
      

  14.   

    网上查都说是通过添加中Build Path或者使用User library来添加,我不知道这些复杂粘贴的人测试过没,反正我测试了好久都不行,估计是我RP不行,这样添加到后编译会通过,但运行的时候就会提示找不到Class之类的错误。我是这样添加的。经测试编译和运行都完全没问题;右键工程,
    Build path,
    java build path,选择libraries
    在右边的按钮中点击“Add Library”
    选择“User library”,点击“下一步”
    点击“User librarys”按钮
    在出现的界面中点击“New..”按钮
    在弹出的界面中随便起一个名字,点击“确定”
    点击“Add jars”按钮选择第三方jar包,点击“确定”完成。后面的步骤很重要,如果不进行后面的操作。在Eclipse里显示编译通过,不会有错误,但在模拟器或真机上运行的时候可能就会出现java.lang.noclassdeffounderror之类的错误:1、在Android项目根目录下新建一个libs文件夹;2、把你需要的导入的第三方Jar包复制进这个目录;3、在libs目录上点右键,选Bulid path  –> Use as source folder。这样就搞定了。很简单。
      

  15.   

    jar包必须是用android sdk编译生成的 否则就有可能运行时报错。 j2se下的jar不一定都能用
      

  16.   

    Thanks to fujian0910(the sixteen floor). He had gave me a good answer to the problem which confused me for a long time. At first, I didn't create the folder "libs" in the root of the project. Although it could be compiled successfully, you could not run it. But after I did as fujian0910's instruction, I could run the program successfully. Thank fujian0910 very much. 
      

  17.   

    我就是按照16楼所操作了,直接报着样的错误[2011-11-17 15:40:39 - Doc] Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
    [2011-11-17 15:40:39 - Doc] Please check logcat output for more details.
    [2011-11-17 15:40:39 - Doc] Launch canceled!
      

  18.   

    我想问,如果我在这个jar里面实现多线程会不会有问题。比如我一个普通的java工程里面普通的类,里面实现了多线程的功能,比如是一个需要较长时间的操作硬件的功能。然后我在android调用,比如一个activity里面按下按钮,调用这个jar,然后执行多线程操作,似乎是有问题的。
      

  19.   

    你可以用sdk 中的工具 dx 将你的class文件编译成android识别的jar
      

  20.   

    请问一下,你引用的第三方jar 包是自己封装的吗?
    因为我在做项目的时候,引用自己封装的jar 包,出现过此类问题,
    原因是在封装jar 包的时候,没有把gen/R.java 一起封装。希望对你有帮助。
      

  21.   

    我搞了半   开发时没事,  一打成APK安装后就报错  找不到了 
      试了半天  最后把第三主JAR包手在SRC目录下,add to buildpath   OK
      
      

  22.   

    被折磨了2个星期,我的apk终于生成OK了。
    解决办法如下,不知道是否有普遍性。希望有帮助
    http://blog.csdn.net/xxlovexx/article/details/7834395