Android项目导出为jar包后调用外部资源的问题

将一个项目导出为jar包很简单,步骤:右键点击目标项目 –> 选择Export… –> 选择Java –> 选中Jar file –> 点击Next按钮 –> 将勾选全部去掉只保留src –> 下面有个框框可以选择导出路径 –> Finish。
* 如果项目中没有使用到资源(如图片、布局文件)直接导出即可。
* 如果有资源文件那么直接导出也不会报错。但是在使用的时候会报一些id找不到之类的错误。
本文将介绍几种项目导出为jar包后仍能调用资源的方式:

第一种、通过反射动态获取资源id

参考另一篇文章:http://blog.csdn.net/u014165119/article/details/46302695
把原来的R.id.×××R.layout.×××等资源id获取方式改为MResource.getViewIdByName(Context context, String name)MResource.getLayoutIdByName(Context context, String name)等方式,之后正常导出jar包。使用jar包时把资源一起拷贝到新项目对应的位置即可。

第二种、使用library库的方式(1)

只需要把要封装jar包的项目改为library,并在要使用jar包的项目中引用此项目,并把library中的AndroidManifest.xml文件中的内容添加到使用library的项目的AndroidManifest.xml文件中。
将普通Android项目变成library:右键点击要变的项目 –> 选择Properties –> 在弹出框的左上角选择Android –> 勾选Is Library单选框 –> OK。
引用library:右键点击要变的项目 –> 选择Properties –> 在弹出框的左上角选择Android –> 点击Add…按钮 –> 在弹出框中选中要使用的library –> OK。
注意:这种方式使用起来比较简单,但是会暴露源码,如果要给其他公司使用就不行了。

第三种、使用library库的方式(2)

步骤:
1. 把要封装jar包的项目设置为library库(Is Library)。
2. 将项目Clean一次。步骤:工具栏点击Project –> 选择Clean… –> 选中项目 –> OK。
3. 使用Export导出jar包(只导出src目录下的源码)。
4. 将导出的jar文件复制到项目的libs文件夹下,并删除src下的源码。
5. 在使用library的项目中引用library
6. 把library中的AndroidManifest.xml文件中的内容添加到使用library的项目的AndroidManifest.xml文件中。

这种方式是library和jar包结合使用,既隐藏了源码,又简单方便。

注意:使用第二、第三中方式时,布局文件等资源的名字在library库和引用library库的项目中不能有相同的。

第四种 Android Studio AAR文件

Android Studio 打包及引用AAR
Eclipse 中使用AAR

你可能感兴趣的:(Android)