我遇到这样一个问题,不知道该怎么解决这种调用关系下打包的问题。
我有一个第三方的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