在Android Jar包使用图片资源的解决方法

一般来讲,在开发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即可


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
android 全景 涉及权限 uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" /> <uses-feature android:name="android.hardware.camera.front" android:required="false" /> <uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false" /> <uses-feature android:name="android.hardware.usb.accessory" android:required="false" /> <uses-feature android:name="android.hardware.usb.host" android:required="false" />
### 回答1: android.jar33 不是一个存在的应用程序或文件。Android开发中的android.jar是一个Android框架类的JAR文件,它含了用于开发Android应用程序的Java类和方法。这个文件提供了开发者在编写Android应用程序时所需的所有类和方法的定义。但是,android.jar33是否存在或具体指什么,我无法提供任何确切的信息。如果您能提供更多背景信息,我将乐于帮助您解答。 ### 回答2: android.jar是一个Android平台核心库的文件。它是开发Android应用程序所必需的,通过其中的类和方法,开发者可以访问和使用Android系统提供的各种功能和服务。 android.jar含了Android平台的各种API,如UI控件、网络通信、存储、多媒体、传感器、位置服务等等。开发者可以根据自己的需求在应用程序中调用这些API来实现各种功能,同时也可以自定义扩展Android平台的功能。 开发Android应用程序时,我们需要在开发工具中引入android.jar文件,以便编译和运行应用程序。通过引入android.jar,我们可以在开发环境中看到Android平台提供的所有类和方法的定义,以便我们编写代码时能够正常地进行代码补全、语法检查以及调用系统API的提示。 同时,android.jar也有助于应用程序在不同Android版本的设备上兼容性的处理。通过使用android.jar,开发者可以根据不同的平台版本来选择调用不同的API或者使用不同的方式实现相同的功能,以保证应用程序在不同的设备上都能够正常运行和表现。 总之,android.jarAndroid开发中不可或缺的一部分,它提供了Android平台的核心功能和服务,帮助开发者构建功能丰富、稳定和兼容的Android应用程序。 ### 回答3: android.jarAndroid开发中常用的一个文件,它是一个Java库,含了Android开发所需的各种类和方法。在Android开发过程中,我们需要使用android.jar来进行开发和调试。 android.jar提供了许多核心的Android类,如Activity、Fragment、View和Intent等,这些类含了各种Android开发所需的功能和特性。我们可以通过导入android.jar使用这些类和方法,并对Android应用进行开发和构建。 通过使用android.jar,我们可以进行各种Android应用程序的开发,括UI界面的设计、用户交互的实现、网络通信和数据存储等功能的开发。在编写代码时,我们可以借助android.jar中提供的类和方法,来实现我们所需的功能和效果。 此外,android.jar还提供了Android开发工具(SDK)中的各种资源文件,如布局文件、样式文件、图片和字符串等资源。这些资源可以在应用程序中被使用和引用,从而能够为应用程序提供更加丰富和美观的界面。 总之,android.jarAndroid开发中一个重要的文件,它含了许多核心类和方法,为我们提供了方便和便利的开发环境。借助android.jar,我们可以进行各种Android应用程序的开发,实现丰富和多样的功能和效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值