Add External JARs,我最初就是这样做的不行,错误提示:12-29 14:42:50.337 E/dalvikvm( 1431): Could not find class 'com.SD.SCObj. SCObj', referenced from method com.test.test.感觉是那个APK里面没有打入相关的jar.
现在问题是这样,我是在eclipse里面写一个普通的java程序A,第三方的库是android的,一个是a.jar,一个是b.so;第三方库里面的a.jar也是通过jni方式调用的b.so,我当初A打包jar的时候可能没有把b.so加入。如果A是一个andrid程序,我知道怎么加入,so放在libs/armeabi目录下,然后修改MK文件。但是现在我是想在一个普通的 java程序里面把这个so也打进去,应该怎么加?直接把lib目录拷贝过来,然后export jar file就可以?然后B,C,D,E再去调用A.jar?
现在问题是这样:第三方的库比如x.jar是通过NDK方式调用了x.so,我是可以写一个android程序来调用x.jar,这样是没有问题的,也不需要用什么NDK,jni之类的方法,直接引入这个jar好像就可以了。但现在我是用一个纯java程序E去调用x.jar,然后把E打包为E.jar,然后由几个B,C,D,E几个java程序调用这个E,并打包成B.jar,C.jar,D.jar,然后通过一个android应用程序来调用B,C,D,E,结果就提示说:Native libraries detected in "E.jar".如果想达到我前述目的,应当怎么做呢。
我遇到这样一个问题,不知道该怎么解决这种调用关系下打包的问题。 我有一个第三方的jar,自己写了5个纯粹java的程序A,B,C,D,E,都是算法和操作存储卡相关的,A调用B,B调用C,C调用D,D调用E,E 调用第三方的jar,都是在eclipse里面通过 configure build path/add external jar的方式加入了需要调用的jar包,编译通过。生成了A,B,C,D,E 共5个jar.然后我写了一个测试程序,测试这5个jar的功能,我做了一个android app,然后通过 configure build path/add external jar加入了A,B,C,D,E等5个jar,以及那个第3方的jar.编译通过生成了APK,安装这个APK,执行对A的功能测试的时候, 提示 E/dalvikvm( 1431): Could not find class 'com.SD.SCObj. SCObj', referenced from method com.test.test. 感觉是第三方的jar没有打到apk里面,所以A调用第三方jar里面的东西会出错 是这样,第三方的jar通过NDK方式来调用一个X.SO,然后A,B,C,D,E等5个程序通过第三方jar转调so,并生成 jar,然后android程序来调用这些jar,结果就遇到问题了。 我试验了这样几种方式,ECLIPSE环境下 1: 程序E:在目录下加入libs/armeabi,结果生成E.JAR,我在android app里面通过add external jar的方式引用这个jar,生成apk,出现上述错误 2. 程序E,不引入so,直接调用jar,然后在android app里面目录下加入入libs/armeabi,修改mk文件,相当于把so和应用一起打包。这是有人告诉我的方式,说可以;但是我存有疑问,E.JAR都没有加入so,将来app调用E怎么能找到E调用的so呢? 3.程序E,加入so,android app也加入,编译就提示: [2010-12-31 11:10:52 - App_Test] The library 'E.jar' contains native libraries that will not run on the device. [2010-12-31 11:10:52 - App_Test] The following libraries were found: [2010-12-31 11:10:52 - App_Test] - libs/armeabi/x.so
我用add jars 打包进去了 其他的不行 删除了重新加了
SCObj', referenced from method com.test.test.感觉是那个APK里面没有打入相关的jar.
我有一个第三方的jar,自己写了5个纯粹java的程序A,B,C,D,E,都是算法和操作存储卡相关的,A调用B,B调用C,C调用D,D调用E,E 调用第三方的jar,都是在eclipse里面通过 configure build path/add external jar的方式加入了需要调用的jar包,编译通过。生成了A,B,C,D,E 共5个jar.然后我写了一个测试程序,测试这5个jar的功能,我做了一个android app,然后通过 configure build path/add external jar加入了A,B,C,D,E等5个jar,以及那个第3方的jar.编译通过生成了APK,安装这个APK,执行对A的功能测试的时候,
提示
E/dalvikvm( 1431): Could not find class 'com.SD.SCObj.
SCObj', referenced from method com.test.test.
感觉是第三方的jar没有打到apk里面,所以A调用第三方jar里面的东西会出错 是这样,第三方的jar通过NDK方式来调用一个X.SO,然后A,B,C,D,E等5个程序通过第三方jar转调so,并生成 jar,然后android程序来调用这些jar,结果就遇到问题了。
我试验了这样几种方式,ECLIPSE环境下
1: 程序E:在目录下加入libs/armeabi,结果生成E.JAR,我在android app里面通过add external jar的方式引用这个jar,生成apk,出现上述错误
2. 程序E,不引入so,直接调用jar,然后在android app里面目录下加入入libs/armeabi,修改mk文件,相当于把so和应用一起打包。这是有人告诉我的方式,说可以;但是我存有疑问,E.JAR都没有加入so,将来app调用E怎么能找到E调用的so呢?
3.程序E,加入so,android app也加入,编译就提示:
[2010-12-31 11:10:52 - App_Test] The library 'E.jar' contains native libraries that will not run on the device.
[2010-12-31 11:10:52 - App_Test] The following libraries were found:
[2010-12-31 11:10:52 - App_Test] - libs/armeabi/x.so
这个怎么只能加在Eclipse中有的??不能加额外的啊?比如说mail.jar等……