
Android
祝福
Android Developer
展开
-
android数据库操作优化(一)
这是我今年陆陆续续写的有关android上数据库操作的文章,以前都发布在开发论坛上,现在把整理到这里。 1.由于SQLiteDatabase对象较为耗费资源,所以我们在使用完SQLiteDatabase对象之后,必须立即关闭它,避免它继续占用资源,否则我们继续程序可能会导致OOM或者其他异常; 2.同理,我们在使用完cursor之后也应该立即关闭cursor原创 2013-10-25 14:14:46 · 8754 阅读 · 0 评论 -
<item> tag requires a 'drawable' attribute or child tag defining a drawab
异常日志:Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #3: tag requires a 'drawable' attribute or child tag defining a drawable产生原因: 我的一个button按钮的background属性中设置成"原创 2014-02-28 15:21:02 · 16396 阅读 · 5 评论 -
Adb failed to restart! Make sure the plugin is properly configured.
错误提示:今天我在运行项目的时候发现自己的手机连不上Eclipse,进入DDMS,adb reset之后出现了如下提示:产生原因:出现这个错误的原因是因为电脑上的各种手机助手抢占了手机链接,用自己的adb进程启动,导致我们开发用的sdk abd无法启动。解决办法:知道原因后,解决办法就是手动在任务管理其中将各种手机助手的进程关闭(仅仅关闭退出他们的软件是不行的,必须杀掉原创 2014-02-18 10:09:46 · 21629 阅读 · 2 评论 -
gen already exists but is not a source folder. Convert to a source folder or rename it.
异常提示:gen already exists but is not a source folder. Convert to a source folder or rename it.错误原因:我在导入以前的项目的时候出现了这个异常,原因是eclipse没有识别出我的src代码文件夹,需要通过设置来指明源码所在的文件夹。解决办法:右键项目,选择Pro原创 2014-03-12 15:36:59 · 20421 阅读 · 1 评论 -
Android仿IOS UIAlertView对话框
显示效果: 我在参考链接中看到了作者的仿的qq提示框,但是在使用的时候并不是很方面,有一些不足,于是我参照Android系统AlertDialog,使用参考链接中的布局文件和style文件,用自己的方法自定义了一下这个仿IOS上面UIAlertView的效果,这样的话让我们可以想使用系统AlertDialog一样使用我自定义的CustomDialog。原创 2014-01-24 15:41:01 · 15467 阅读 · 6 评论 -
Unable to execute dex: java.nio.BufferOverflowException.解决办法
错误提示:[2014-01-16 09:27:35 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.[2014-01-16 09:27:35 - tab_demo] Conversion to Dalvik format原创 2014-01-16 11:57:53 · 30082 阅读 · 12 评论 -
R.java was modified manually! Reverting to generated version!(R文件丢失异常原因汇总)
引言:R文件丢失异常在java开发中是个比较常见的异常,造成这个异常的原因可能非常微小,但是给Android开发者们造成的麻烦可是巨大的,当程序员们费尽千辛万苦,找到自己错在哪里的时候,绝对会对自己的粗心大意而捶胸顿足,哀叹不已。异常提示:R.java was modified manually! Reverting to generated version!或者项原创 2014-03-28 14:35:36 · 87140 阅读 · 14 评论 -
Unable to execute dex: Multiple dex files define
这是一个编译错误,在ADT的编译器和SDK的工具有差异或是版本不一致时常会出现的一个问题,解决的方案如下:第一步: updated eclipse (Help->Check for updates) 第二步:升级SDK的Tools和platform-tools第二步:在Eclipse->Project->去掉自动构建(Build Automatically)->选择Clear ->Bu转载 2014-03-18 15:38:29 · 1795 阅读 · 0 评论 -
error: No resource identifier found for attribute ‘backIcon’ in package
异常提示: 今天我新创建了一个自定义控件,我为他定义了一个属性为backIcon,但是当我在xml设置这个属性之后,xml布局界面提示以下错误:error: No resource identifier found for attribute ‘backIcon’ in package错误原因:在网上查找错误原因的时候,有文章说这是因为我的布局文件的命名空间没有添加有包名的那个命名原创 2014-04-08 12:34:54 · 88326 阅读 · 19 评论 -
Android App监听软键盘按键的三种方式
前言:我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面;在点击搜索框的时候,点击右下角的search符号键可以进行搜索;或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作。效果图:function 1:function 2:function原创 2014-02-08 10:35:51 · 110100 阅读 · 16 评论 -
去除AndroidManifest.xml uses-sdk警告方法
我们经常在开发app的时候在AndroidManifest.xml发现这个警告warining:"Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the android.os.Build.VE原创 2013-12-27 17:47:44 · 22004 阅读 · 0 评论 -
java.util.ConcurrentModificationException解决办法
这个问题发生在我前几天写代码的时候,但是我需要对ArrayList中的数据进行过滤,将一部分符合条件的实体对象从ArrayList中去除,然后再对ArrayList中的数据进行使用或其他操作。 但是我不加思考的在循环中使用了list.remove(Object o)的方式来去除实体对象,结果爆了java.util.ConcurrentModificationException异常原创 2013-12-27 15:46:34 · 2014 阅读 · 0 评论 -
xxxxx is not translated in xxx(eg:values-zh)
这个错误发生是因为我要给项目添加友盟统计,友盟提供的资源包里面有两个values文件夹,一个是res/values,另一个是res/values-zh,我把这写一股脑添加进去之后,在添加完毕之后我才发现values里面给的xml资源文件是英文的,而values-zh才是中文的资源文件,于是我直接复制values-zh中的文件覆盖了values中的文件,然后删除掉values-zh,然后在我打包的时原创 2013-11-04 20:25:32 · 9742 阅读 · 0 评论 -
Proguard returned with error code 1. See console
发生这个错误是因为打包混淆时找不到我们的引用包,有的人可能说我没有引用什么Library啊,事实上,我们现在的项目创建时就默认有v4包,这是google提供的兼容包,主要为了应对Android3.0以后的新组建也可以在3.0之前使用,例如Fragment,ViewPager等等,好了,现在我们回到正题,问题我们知道了,解决办法随之而来,我们在proguard-project.txt文件(2.3左右原创 2013-11-05 19:15:15 · 7405 阅读 · 2 评论 -
java.lang.IllegalStateException: attempt to re-open an already-closed object
这个错误出现的原因是因为我在一个数据库查询方法中调用了另一个数据库查询方法,我的数据库查询方法都是在开始的时候获取SQLiteDatabase对象,在结束的时候关闭SQLiteDabse对象,结果内部的数据库查询方法在结束的时候直接关闭了SQLiteDatabase对象,导致外面的数据库查询操作报错,在这里大家不要以为多获取了几个SQLiteDatabase对象就可以了,每个线程只能使用一个SQL原创 2013-11-07 19:10:40 · 42712 阅读 · 6 评论 -
Make sure the Cursor is initialized correctly before accessing data from it.
详细错误是:java.lang.IllegalStateException: Couldn't read row 0, col 2 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.出现这个原因是因为我在获取Cursor中的字段时,获取了一个不存在的字段原创 2013-11-07 19:23:52 · 25066 阅读 · 0 评论 -
SQLite无法使用drop column删除表字段解决办法
由于项目需求变更,我需要在sqlite数据库的表中删除一个字段,通用的sql操作语句如下:alter table record drop column name;结果数据库提示如下错误:搜索得知,原来SQLite目前还不支持drop column,所以必须想出另外一种方法来进行表字段的删除,读者要是说:“直接删掉这个表,然后在新建不见行了!”。好吧,既然你这么不怕麻烦那就不原创 2013-11-14 18:10:44 · 21941 阅读 · 3 评论 -
Are you missing a call to unregisterReceiver()?
出现这个错误是在我在使用动态广播监听短信是否发送成功,正如错误提示所说,我忘了在我的代码中取消注册广播,因为这是动态广播,所以我必须在不需要的时候将这个广播手动注销,否则就会发生如题所示的异常,这个异常的解决办法很简单,就是在动态广播的onReceiver()方法中注销广播,如下代码所示:public void onReceive(Context context, Intent intent) {原创 2013-12-03 00:35:49 · 43970 阅读 · 4 评论 -
cannot be cast to android.widget.HeaderViewListAdapter
这个类型转换异常发生在ListView上,我复制别人的代码的ListView的时候,对他的代码做了一些修改,把他的HeadView去掉了,然后发生了这个错误,下面是根据日志找到的代码报错的地方:HeaderViewListAdapter ha = (HeaderViewListAdapter) _list.getAdapter(); 在这个我不能将我的ListView配置的a原创 2013-12-03 18:47:39 · 9390 阅读 · 7 评论 -
PopupWindow被输入法弹上去之后无法恢复原位
问题描述:我的PopupWindow位于屏幕底部,它上面有一个EditText输入框,而当我点击这个EditText的时候,随着输入法的弹出,我的PopupWindow也会随着上升,但是当我结束输入,关闭输入法的时候,PopupWindow却没有随着输入法一下下滑,而是停在屏幕中间,下面显示的是Activity的背景色,很难看。如图:输入法弹出前: 输入法弹出:输入法原创 2014-01-03 17:10:37 · 9066 阅读 · 6 评论 -
Android无法导入下载好的项目(和Eclipse中已经存在的项目命名一样导致冲突)解决办法
错误提示:在我们到导入从网络下载的项目时,经常会出现如下问题(选择的项目变灰,并且提示要选择至少一个项目):错误原因:出现这样的错误主要是因为你的Eclipse已经存在了和上图中New Project Name一样的名字library(我们从网络下载的项目好多命名都是MainActivity、main之类的,而库项目更是大多命名为library,所以会经常出现这种命名冲原创 2014-04-22 11:37:40 · 11099 阅读 · 2 评论 -
android应用开发过程中更换资源文件不刷新(显示旧资源文件)问题
问题描述: 我们在开发android app项目的时候,经常会遇到需求更改和UI更改的情况,这样我们就需要将已经写好的界面中的元素换掉,例如将界面中的背景图或者某个图片换掉,这时,问题便出现了:在更换完图片资源之后,我们会发现,在手机上面显示的还是原来没有更换过时的图片(旧图片),没有显示新图片资源。产生原因&解决办法:这个问题的产生原因比较多,常见的可能是:原创 2014-04-09 14:43:04 · 6591 阅读 · 1 评论 -
setOnClickListener报空指针异常
1.异常提示:2.错误原因:原创 2014-05-31 20:11:30 · 11528 阅读 · 4 评论 -
Unable to load class 'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'
Unable to load class ‘org.codehaus.groovy.runtime.typehandling.ShortTypeHandling’Error:The project is using an unsupported version of the Android Gradle plug-in (0.12.2). The recommended version is 1.2.3.原创 2015-07-22 11:24:04 · 7006 阅读 · 5 评论 -
【Android】getActionBar()为null的解决方法总结
前言在使用 ActionBar的时候,有时候会爆出空指针异常,这是因为应用没有获取到 ActionBar 导致的,而导致应用没有获取到 ActionBar 的原因比较多,所以我们下面就来总结一下 ActionBar 获取不到的错误原因。解决办法检查你的应用是否设置了没有 ActionBar 的主题Theme,或者直接设置了 NoActionBar或NoTitleBar 属性,主要要检查这几点:检查原创 2015-07-28 15:27:18 · 37552 阅读 · 8 评论 -
Android SDK下载异常(hostname in certificate didn't match)
对于Android开发者来说,每次下载更新 Android SDK 都是一次痛苦的经历,因为 google 被墙,每次我们都要想尽办法来更新 SDK, 以前我是通过 VPN 来下载 SDK,但是也只能保证稍微稳定一点的下载速度,每次更新还是要耗费很长的时间来等待,上星期我的同事发现通过修改 hosts 文件并将下载地址域名指向 203.208.46.146 即可加快速度,而且下载速度基本上都是4,原创 2015-01-05 14:15:24 · 7850 阅读 · 1 评论 -
【Android】ToolBar设置NavigationIcon不显示异常或自定义失败异常
异常:在布局XML中设置android:navigationIcon=”@drawable/icon”或者在代码中设置都无法自定义成自己需要设置的NavigationIcon图片。 代码设置NavigationIcon如下:Toolbar toolbar = (Toolbar)findViewById(R.id.my_toolbar);toolbar.setNavigationIcon(R.dr原创 2015-10-29 16:12:55 · 13921 阅读 · 1 评论 -
【Android】java.lang.SecurityException: Permission Denial: starting Intent 应用启动失败异常
异常提示在Eclipse和Android Studio同时使用的时候,我遇到过这样一个异常,具体错误提示如下:ava.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000原创 2015-11-30 13:19:52 · 31677 阅读 · 0 评论 -
【Android】WebView设置Cookie
在网上搜索给WebView设置Cookie这个问题得到的回答都是以下这段代码:CookieSyncManager.createInstance(context);CookieManager cookieManager = CookieManager.getInstance();cookieManager.setAcceptCookie(true);cookieManager.setCookie原创 2015-12-31 23:43:32 · 8297 阅读 · 4 评论 -
【Android】finished with non-zero exit value 2
Error:Error converting bytecode to dex:Cause: com.android.dex.DexException: Multiple dex files define Lcom/Error:Execution failed for task ':app:finished with non-zero exit value 2原创 2016-05-31 23:55:49 · 6624 阅读 · 0 评论 -
【Android】Android防止过快点击造成多次事件执行(防止按钮重复点击)
在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮,当然,除了相对应的对应用进行优化和设置点击selector以外,我们还可以做一些其它的工作,例如,判断按钮的 onCli原创 2016-11-03 15:15:20 · 34788 阅读 · 3 评论 -
从Eclipse迁移代码到Android Studio可能出现的异常
主要还是写的有关项目原有代码从 Eclipse 迁移到 Android Studio 时会遇到的问题,并没有和 Android Studio 的配置有太大关系。Error:Can't have more than one marked region along edge.原创 2015-07-13 11:51:40 · 4000 阅读 · 4 评论 -
at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:)
错误提示: at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:) 在Android中给ListView写多个不同的item布局的时候,我遇到了一个标题中的数组越界错误 getViewTypeCount() 的值必须大于 getItemViewType() 的值原创 2015-06-08 15:00:01 · 9165 阅读 · 13 评论 -
auth_decode_failed_error微信分享失败
今天我在编写微信分享的代码的时候,微信给我弹出了这个错误提示,其实错误原因很简单,因为微信分享要求使用程序的正式签名,而不是我们调试代码时默认的debugkey,测试微信分享功能,我们可以直接打一个正式包或者将IDE的debugkey换成正式签名key即可。另外以前我在调试微信分享的时候,在一些手机上会遇到点击微信/朋友圈分享时候,微信一闪就消失,或者微信长时间停留在加载过程中,这都是因为我们在调试原创 2015-06-05 12:05:00 · 3243 阅读 · 0 评论 -
java.net.UnknownHostException 异常处理
关于java.net.UnknownHostException大家也许都比较熟悉,今天我来整理一下关于java.net.UnknownHostException的各种处理办法:1、你的电脑或模拟器没有网络,请检查,也有可能是是网络地址错误,网站倒闭或者后台地址失效。2、java.net.UnknownHostException: Host is unresolved ***.***原创 2012-11-04 21:06:27 · 353546 阅读 · 16 评论 -
Android MarginLeft与MarginStart的区别
在写layout布局的时候,我们会发现有这样几个比较相似的属性:MarginStart MarginLeftMarginEnd MarginRight这些属性的区别是什么? 根据api注释,我们得知MarginStart指的是控件距离开头View部分的间距大小,MarginLeft则指的是控件距离左边View部分的间距大小,MarginEnd和Mar原创 2014-10-17 10:35:24 · 50352 阅读 · 1 评论 -
Android Library projetcts cannot be exported.
记一次比较无语的犯错,前几天我在紧急打包一个apk的时候,遇到了这样一个异常:Android Library projetcts cannot be exported. 异常提示截图如下:咋看之下我以为是项目依赖的Library出现了问题,然后就去检查了一遍主项目依赖的各种库,发现库项目都没有问题,然后我去搜索了一下这个异常信息,结果搜索到的都是"Android Library p原创 2014-11-19 18:26:15 · 4378 阅读 · 0 评论 -
如何在android style文件中使用自定义属性
前几天我在项目中遇到了这样一个问题:我为项目写了一个自定义控件,这个控件会被大量复用,所以我准备在style.xml文件中定义一个style来减少重复xml布局内容的编写,但是里面有一个自定义的控件属性,问题出现在这里,虽然自定义属性在layout布局xml中可以使用正常,但是却无法在style中定义,本来这个控件是大量服用的,style也是为了复用减少xml内容写的,我可以把自定义属性内容直接写原创 2014-11-24 10:06:52 · 34169 阅读 · 18 评论 -
java.lang.UnsupportedOperationException: Can't convert to integer: type=0x3
前几天在编写一个自定义控件的时候,出现了这个这个异常:Caused by: java.lang.UnsupportedOperationException: Can't convert to integer: type=0x3然后定位到代码中的时候,发现是自定义控件中引用资源的时候报的错误,代码片段如下:int iconId = mTypedArray.getInteger原创 2014-11-25 11:22:25 · 7565 阅读 · 1 评论 -
使用Eclipse开发Android时在什么时候应该进行clean操作?
我们在使用 eclipse 在开发 Android APP 的时候,会用到一个 clean(Project —— Clean...) 的操作,这个操作执行的内容很简单,就是将项目结构中的 bin 目录中早先编译好的apk,dex等内容删除,然后重新编译生成出这些内容(当然,绝大多数当我们按下 “保存” 按钮的时候,eclipse 会自动重新编译 bin 目录中的内容,但是也有时候 ecipse原创 2015-01-04 11:19:20 · 7121 阅读 · 4 评论