Android开发经验分享(2) 新手经常会碰到的问题整理

在学习的过程中遇到了不少的问题,所幸的是最终经过上网查询都得到了解决。现在将我在学习Android开发过程中遇到的一些问题及解决的方法整理如下。

1.R.java不能实时更新

  问题描述:在res文件中新增的变量不能在R.java中实时的显示出来。

  解决方法:选择菜单栏的“Project”,勾选“Build Automatically”选项。

2.LogCat视窗没有显示

  问题描述:在Eclipse的右下方没有显示LogCat视窗。

  解决方法:选择菜单栏的“Windows”,再选择“Show View”,最后再选择“LogCat”即可。

3.编译时提示“android library projects cannot be launched”错误的解决方法

  问题描述:编译时提示“android library projects cannot be launched”错误

  解决方法:选择菜单栏的“Project”,再选择“Properties”,在弹出的窗口中选择“Android”,将is library选项前面的勾去掉。

4.在xml中添加EditText控件后提示“This text field does not specify an inputType or a hint”错误

  问题描述:在xml中添加EditText控件,控件信息如下。

<EditText

android:id="@+id/editText"

android:layout_width="match_parent"

android:layout_height="wrap_content" ></EditText>

  编译时,提示“This text field does not specify an inputType or a hint”错误。

  原因分析:控件中缺少android:hint以及android:inputType信息。android:hint用于设置EditText为空时显示的默认文字提示信息。android:inputType用于设置EditText的文本的类型,用于帮助输入法显示合适的键盘类型。

  解决方法:在控件中添加android:hint以及android:inputType信息,添加后的控件信息如下。

<EditText

android:id="@+id/editText"

android:hint="0"

android:inputType="number"

android:layout_width="match_parent"

android:layout_height="wrap_content" ></EditText>

5.警告信息“Hardcoded string "xxx", should use @string resource”的消除方法

  问题描述:在xml中添加Button控件,控件信息如下。

<Button

android:id="@+id/mButton_mc"

android:text="mc"

android:layout_width="match_parent"

android:layout_height="wrap_content" >

</Button>

  编译时,提示“Hardcoded string "mc", should use @string resource”警告。

  原因分析:在android:text中使用到了字符串mc,应该将该字符串定义在String.xml中,然后再通过调用String.xml中该字符串的资源名来使用该字符串资源。这样做的好处在于可以做到一改全改,并且在支持多语言时也是很有用处的。

  解决方法:在项目目录下的res-->values-->String.xml中添加字符串mc的信息如下。

  <resources>

  <string name="mc">mc</string>

  </resources>

  然后,再在使用该Button控件的xml中,通过调用该字符串的资源名来使用该字符串,如下。

<Button

android:id="@+id/mButton_mc"

android:text="@string/mc"

android:layout_width="match_parent"

android:layout_height="wrap_content" >

</Button>

6.警告信息“Nested weights are bad for performance”的消除方法

  原因分析:在布局进行嵌套使用时,父布局与子布局都使用了android:layout_weight,但不是必须使用时,便会出现如题所示的警告信息。

  解决方法:根据实际情况,去除子布局中非必须使用的android:layout_weight。

7.启动模拟器时出现错误信息“Please ensure that adb is correctly located at:XXXXX”的解决方法

  现象:使用正确的源代码,在启动模拟器时出现如下错误信息“Please ensure that adb is correctly located at ‘D:\AndroidSDK4.0\android-sdk-windows\platform-tools\adb.exe‘ and can be executed.”

  解决方法:将D:\AndroidSDK4.0\android-sdk-windows\platform-tools加入到系统环境变量PATH中。

8.模拟器启动时一直显示信息“Waiting for HOME (‘android.process.acore‘) to be launched...”的解决方法

  现象:模拟器启动时,等很久(5分钟以上)也启动不了,一直提示“Waiting for HOME (‘android.process.acore‘) to be launched...”信息。

   解决方法:删除当前的模拟器,重新创建一个模拟器。

9.Android模拟器横屏与竖屏切换

  模拟器启动后,选中模拟器,按CTRL+F11可以进行Android模拟器横屏与竖屏的切换。

10.导入的Android工程@Override报错

   现象:将网上下载的Android工程源码导入Eclipse时,@Override报错。

   解决方法:在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level中选择1.6,刷新工程,就不会报错了。

时间: 2024-10-10 01:02:08

Android开发经验分享(2) 新手经常会碰到的问题整理的相关文章

Android开发经验分享-GridView、ListView内容错乱

在使用GridView.ListView的过程中遇到内容错乱的问题,费了较长时间才找到问题的根源,特地总结一下. 1.在自定义adapter中没有给每一项都设置内容导致内容错乱: @Override public View getView(final int position, View convertView, ViewGroup parent) { if( null == convertView ){ mGridHolder = new GridHolder( ); convertView

Android开发经验分享(1) 解决部分手机不能在shell下进入Sqlite数据库

今天和大家分享一个自己在这1年里Android开发中碰到的各种问题:今天开发项目中想查看本地的Sqlite数据库,以前用的客户端居然不能免费使用了.又得自己开始折腾一下.想办法进入shell来查看sqlite数据库中的数据. 首先,手机必须要root掉.我采用的是百度一键root功能,手机root之后.将手机用USB线连接.连接完后,我使用命令 cd /data/data 进入data数据文件,我用ll命令可是我发现我进入不了.提示如下: 仔细一读提示:知道原来是没有权限,那我只要给他权限就可以

Android开发经验分享(3)

1在布局的时候一直碰到一个问题:先前在创建项目的时候有一个标题栏,实际项目中要将标题栏隐藏掉,Android应用开发大全中看到这样的解决方法:在配置文件AndroidManifest.xml中加入如下标签<android:theme="@android:style/Theme.NoTitleBar"> 2今天碰到了这样一个问题:在String.xml里面要输入这样一段字符 但是发生了这样的一个错误: Like '+' sign, phone numbers starting

Android开发经验分享(5)Android优化小结

项目中何时不会用到优化呢,现把一些优化的小经验总结下 1.万恶的static static是个好东西,声明赋值调用就是那么的简单方便,但是伴随而来的还有性能问题.由于static声明变量的生命周期其实是和APP的生命周期一样的,有点类似与Application.如果大量的使用的话,就会占据内存空间不释放,积少成多也会造成内存的不断开销,直至挂掉.static的合理使用一般用来修饰基本数据类型或者轻量级对象,尽量避免修复集合或者大对象,常用作修饰全局配置项.工具类方法.内部类. 2.无关引用 很多

IOS开发经验分享

一些IOS开发的心得: 1) [Multiple Threads] IOS多线程注意, 所有的UI操作都必须在主线程上: Any code that will update the UI should be done on the main thread. Data loading should typically be done in some background thread. 示例: [self performSelectorOnMainThread:@selector(updateTh

Android配置文件分享和JSON数据生成与解析

首先声明,我这里大体是讲的一个关于"Android配置文件分享和JSON数据生成与解析"的整体流程,具体数据库中的数据根据读者自己的项目来安排,如果您看不大懂也请您原谅,毕竟我说了,我只是新手.其实关于数据库中的数据你只需要知道他们都是一个个对象,然后有各自的属性就行了,我们的关键在于JSON数据的生成与解析. 鉴于自己的是个博客新手,感觉自己的博客访问量有些少可能是因为自己确实知识匮乏,毕竟我早就说了,我不适合编程,但是没办法啊,我要去读个文学博士的话,怕是要遭人白眼了,故而以后的事

十八年开发经验分享(07)递归程序设计

这篇谈谈递归程序设计的问题.从取名上来说是想刻意区别内容的侧重点不同.上一篇是构造,其重点是从递归程序的自身结构出发,试图用一种比较直观的方法来完成递归程序的构造.这篇的重点是设计,其中的区别在于,这次是从问题本身的结构出发来完成递归程序的开发任务.上一篇中介绍的方法,比较简单直观,八股文的意味非常浓郁,并且还有一个比较大的缺点,那就是在实际使用时往往会受制与方法本身而不能解决有一定难度的问题.实际上递归是一种客观存在的现象,递归的描述问题是对客观世界的一种认识.本文从对问题的认识,描述和分析这

开发经验分享(一)

开发经验分享系列文章主要记录工作实际项目中遇到的问题和解决办法,希望能对大家有参考意义. 一.芯片的地址分配和变量地址的指定 芯片的存储区很小,所以要合理利用存储区,在进行地址空间的分配时就需要一定的技巧. 在进行开发时,一定要做好地址的划分. 比如CODE区的0x0000~0x8000作为COS区,接下来的0x8000~0x10000作为文件系统区,依次类推…… 在定义变量的时候,也要注意定义在了什么位置,占用的空间有多大. 比如,我们在XRAM区定义变量和数组: xdata char tem

Android APP 分享图片文字到微信刚开始正常,后面就不弹出分享框了

按照官方的流程走了一遍,一切顺利,分享成功了,本来以为可以大功告成了,结果睡了一觉,第二天要给客户演示了,才发现TMD坑爹了,不能分享了,第三方的分享栏弹不出来了,我一阵惊慌,还好很快找到了解决办法:原因是我进行了代码混淆,但是没有对新添加的这部分分享到微信的代码进行处理,所以...解决问题的办法很简单:需要在混淆配置文件proguard.cfg中,增加如下两行代码: -keep class com.tencent.mm.sdk.openapi.WXMediaMessage { *;} -kee