今天学 习打jar包的时候遇到些问题,分享给大家,希望能够有所帮助。
由于开发的程序是需要和硬件进行交互的,所以打算把与硬件交互的代码打成一个jar包,方便导入到项目中。
首先:我考虑打成一个java的jar包,但是考虑到会有读取so文件,而调用so文件我只知道用android 自带的navtive方法,并且有些复用的方法中包含有EditText 空间 和Context ,所以只能打成android的jar包。
接着:我创建了一个Lib的android工程,把so文件 和跟硬件设备交互的代码全部拷贝进去,按照网上的知道通过export===java===jar File 的顺序,导出来。然后就把jar包放到之前的项目工程中去测试。
1、出现Duplicate 的提示,duplicate manifist , duplicate ic_laucher 的错误提示,于是我尝试着把Manifst删掉,但是发现android项目报错,于是只有在打jar包的时候不把manifst 打进去,然后就没有报这样的错误。
2、接着我又测试,发现出现问题INSTALL_PARSE_FAIL_NO_CERTIFICATES ,please check logcat output for more detail ,fail to install a.apk. 代码没有报错,但是安装的时候报错,刚开始考虑的是不是设备问题,屏蔽了安装,换了两台设备,发现报的错误一样,而运行其他项目是没有问题的。所以还是要找代码的问题,由于出现关键字Certificate,而网上找的都是说签名有关的,但是我的程序根本没有签名啊!我就考虑有没有其他地方有证书,所以猜测是不是跟硬件交互的so文件里面有证书相关的,不能在jar包中去用。所以我把so文件拷贝到项目工程中,打android
jar包的时候不把so文件打进去,然后倒入到工程中,发现运行良好。问题解决了。