一般来讲,在开发Android应用时,所使用的图片资源会放在工程的Res/drawable目录下,

代码中通过context.getResources().getDrawable(R.drawable.marker_green)来使用

但是在jar包采用这种做法时,当第三方Android应用使用该Jar包时,则会报运行错误:java.lang.NoClassDefFoundError

【网上有很多方法,将jar包通过build path添加到library中,这些都不是解决的办法】


【解决办法】

将jar包用到的图片资源存放在工程的assets目录下,代码中通过如下方法来获取资源:

1,获取Bitmap

mCompassBmp = BitmapFactory.decodeStream(context.getAssets().open("compass_showmap.png"));

2,获取drawable

drawable = new BitmapDrawable(BitmapFactory.decodeStream(mMapView.getContext().getAssets().open("marker_green.png")));

【jar包的发布】

1,工程右键,选择Export...

2,选择导出类型



3,选择导出资源:只需要导出src和assets即可


更多相关文章

  1. android Configuration系统设置
  2. Android获取屏幕宽高
  3. Android入门——Drawable与对应的资源xml的应用
  4. Android滑动组件----RecyclerView并且实现点击事件(2)
  5. Android权限系统(一):开机获取权限信息
  6. Android中如何给layout资源文件分类 在layout下创建子文件夹
  7. Android(安卓)- 判断当前网络环境、隐藏软键盘、动态监测及获取
  8. Android获取系统cpu信息,内存,版本,电量等信息
  9. ActionBar简单使用介绍和Tab切换的应用

随机推荐

  1. 搭建Android开发环境(Eclipse+SDK+ADT)
  2. Unity实战篇:实现安卓手机的复制粘贴功能(
  3. AsyncHttpClient放在子线程执行时抛出异
  4. Android(安卓)Studio中新建项目时Your an
  5. Android(安卓)6.0运行时权限的申请使用及
  6. android生成apk包出现Unable to add "XXX
  7. android 关闭进程
  8. Android(安卓)sqlite 操作
  9. 6573 GPIO 设置
  10. Android(安卓)WebView Authorization认证