Android开发注意点小记
暂时主要讨论以下几点:
- Android引用外部包,报NoClassDefFoundError异常崩溃
- 同名包引用关系问题
- 程序图标
- 9patch图片素材
Android引用外部包,程序报java.lang.NoClassDefFoundError异常崩溃
在Android工程中,引用第三方jar包(尤其是经过本地编译的),在Java代码开发环境中正常编译输出,但到手机等设备上运行时一旦运行到引用该包的代码,立即异常崩溃,系统显示进程意外停止提示窗口,LogCat报出异常信息
dalvikvm Could not find class '引用包.类', referenced from method...
AndroidRuntime java.lang.NoClassDefFoundError: 引用包.类
打开Console控制台窗口,Android监控页中显示异常信息
[2014-06-20 14:58:23 - DriverAssistant_Web] Dx
trouble processing:
[2014-06-20 14:58:23 - DriverAssistant_Web] Dx bad class file magic (cafebabe) or version (0033.0000)
...while parsing 引用包/类.class
...while processing 引用包/类.class
[2014-06-20 14:58:23 - DriverAssistant_Web] Dx 1 warning
出现这种错误的原因是,当前Android工程(API17 android4.2.2 ADT v21.1)默认使用的是jdk 1.6(JDK 6.0)编译器,而引用的包编译环境大于1.6(如1.7等),由于编译出的字节码版本不一致,导致无法转换成android虚拟机dalvikvm可读的字节码,因此引用的这个类包实际上并没有被编译到这次输出的apk中,自然程序运行的时候就找不到对应的类文件了。
解决方法:
获取引入包的源代码工程,右击工程菜单: Properties(属性)->Java Compiler 窗口中可以选择工程编译使用的jdk版本,选择1.6或1.5,点击确定,重新编译输出jar包,导入Android工程即可:
PS. Android工程本身是不支持更改jdk编译版本的,如果尝试更改至1.7的话,Console控制台将得到错误输出信息 Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.
同名包引用关系问题
同时引入两个同名jar包到工程,例如:
a.jar
|---wavky.wand.A
ab.jar
|---wavky.wand.A
|---wavky.wand.B extends wavky.wand.A
在javaSE中测试,使用 wavky.wand.B 类时,不会导致冲突,但只会引用第一个加载的jar包的类。
在下面的Order and Export界面中,可以调整相应类包的加载顺序,调整 a.jar 到 ab.jar 上面,则类B继承自 a.jar 中的类A(ab.jar中的类A不再被类加载器加载)。
但是,无法通过这种调整加载顺序的方式替换JDK中的包类!
但在Android中,这种调整类加载顺序的方式似乎已经不再起作用,所有外部引用的包自动被整合为一个单独的Android Dependencies,而且跟javaSE的情况一样,无法通过将Android Dependencies调整至顶层的方式替换Android SDK中的原生同名包类,如果外部引用与Android SDK内同名的包,则自动优先使用SDK内的jar包的类,而忽略外部引用。
程序图标
- 根目录\ic_launcher-web.png——512×512分辨率图标,用于google Play市场展示
- 根目录\res\drawable-xdpi\ic_launcher.png——各像素密度下程序图标
9patch图片素材使用
- 除了左、上的扩充像素标记外,右、下的内容范围像素标记也必需涂上(且连续、不断点),否则实际布局显示效果将产生混乱、无法对齐等不可预测现象。
- 在eclipse(ADT)的XML布局设计界面上使用9patch的图片,在API16/17以下的版本保存编译XML会导致IndexOutOfBoundsException
异常,但不影响相应版本系统的运行显示效果,安装使用API16/17 SDK编译即可。相关信息可参考:http://stackoverflow.com/questions/10757997/9-patch-not-working
转载于:https://www.cnblogs.com/wavky/p/3799009.html
Android开发注意点小记相关推荐
- 手Q支付Android开发面试前小记
过年之前朋友帮忙做了内推: 千里马姓名 岗位全称 工作地 岗位要求 岗位职责 18428-手Q支付Android开发工程师(北京) 北京 2年及以上手机应用或相关开发经验,1年以上Android平台开 ...
- 高级Android开发面试汇总
高级 Android 开发面试题汇总 一. Android 基础 1. Service 的两种启动方式 简单的来说就是 直接启动 和 绑定启动 两种方式. // 直接启动 Context.startS ...
- dSploit—Android网络***套件测试小记(含视频)
http://www.freebuf.com/articles/wireless/6279.html dSploit-Android网络***套件测试小记(含视频) dSploit是什么? dSplo ...
- Android环境搭建和Android HelloWorld—Android开发环境搭建
Android_Android开发环境搭建-搭建Android的开发环境 1.我考虑先下载JDK7.0,在JDK的安装中,考虑一般SDK都是向上兼容的,于是选择了最高的版本7.0 这里是我总结的详细的 ...
- java安卓开发工具_推荐几个非常实用的Android开发工具
工欲善其事,必先利其器.我们进行Android开发也要有好的开发工具辅助才能更好更高效的完成各种开发,为用户提供更实用的应用程序.本文就为大家推荐几个非常实用的Android开发工具,及几个常用的编辑 ...
- android 网络编程实现,Android开发使用HttpURLConnection进行网络编程详解【附源码下载】...
本文实例讲述了Android开发使用HttpURLConnection进行网络编程.分享给大家供大家参考,具体如下: --HttpURLConnection URLConnection已经可以非常方便 ...
- linux 浏览器源码下载,Android开发:图片浏览器源码
Android 图片浏览器源码,是你学习Android很好的例子,希望对你的学习有帮助. main.xml android:layout_width="fill_parent" a ...
- 2017-2018-2 20165236 实验四《Android开发基础》实验报告
2017-2018-2 20165236 实验四<Android开发基础>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:郭金涛 ...
- Android开发权威指南(第2版)新书发布
<Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供 ...
- indows上的android开发环境软件架构5
(二)实验要求: ? 修改按下button 显示的内容中添加上自己的学号姓名: ? 添加一个按钮,按钮名称为"退出",并且为这个按钮添加事件代码,使得点击这个按钮后退 出程序.事件 ...
最新文章
- spark 写tidb_优秀的数据工程师,怎么用Spark在TiDB上做OLAP分析
- 1 计算机主机里面都有些什么东西,电脑主机箱里头的东西都有什么用?
- spring 注入bean的两种方式
- 使用Androidkiller编译APK文件时出现libpng error: Not a PNG file的错误
- Normalization 归一化方法 BN LN IN GN
- Handler处理器 和 自定义Opener
- RocketMQ(六)—IndexFile详解
- JAVA反射-面试题
- 生活在继续,梦,也要继续
- wc 统计文件字节数、字符数、单词数
- 代码审计工具学习之Seay(安装以及初步认识)
- 怎么把安装包挂在HTML,怎么把安装包拷贝到u盘
- 什么是身份证ocr识别?身份证ocr识别接口API能干什么?
- C#集成FastReport.Net并将模板保存到数据库
- Kernel 日志缓存大小修改
- 我辞去了年收入50万的工作,去做在线教育的老师
- RadioGroup 全部取消选中 和选中某个按钮
- 数据结构第四篇——(一般)线性表(基于C语言)
- trinity运行原理及常见报错(二)
- 鸿蒙系统电池省电吗,鸿蒙系统+5850超大电池华为mate40,华为mate30前辈彻底感人价...