andriod 常见问题

迷途d书童 发布于 2012/04/26 12:10
阅读 171
收藏 0

目录 [隐藏]
1 解决常见问题 
1.1 已经运行了模拟器,但adb依然报"no device"(没有发现设备)错误 
1.2 我的新应用程序/活动没有出现在应用程序列表中 
1.3 我已经更新了我的应用,但这种更新并没有体现在设备上 
1.4 在我启动一个应用的时候,产生了错误"Binary XML file line #2: You must supply a layout_wilih attribute",但是我明明已经声明了一个layout_wilih属性!!! 
1.5 我(通话,接收短信,接收通知,向Android应用发送意向)的请求被忽略 
1.6 救命啊!我无法在Eclipse中编译我的项目! 
1.7 Eclipse无法和模拟器通信 


[编辑] 解决常见问题
本章是针对Android常见错误的一些解决方法。当发生错误是,千万不要忘记使用ddms的logcat来仔细察看错误发生的原因。参考调试Android应用程序了解更多关于调试的内容。 

[编辑] 已经运行了模拟器,但adb依然报"no device"(没有发现设备)错误
使用(adb kill-server)命令停止adb,然后用任意的adb命令重新启动。(原文是这么写的,测试了一下,用adb shell运行的第一次还是会报"no device",但是第二次就好了) 

[编辑] 我的新应用程序/活动没有出现在应用程序列表中
你需要重新启动你的设备或者模拟器,尤其是当你新增一个AndroidManifest.xml文件时。 
当你使用一个已经存在的AndroidManifest.xml文件时,你是否为你的Activity增加了一个<activity>标签,为你的Service增加了一个<service>标签,为你的receiver(接收器,参见sample中的xmpp data message receiver)增加了一个<receiver>标签?等等。 
要确保你的AndroidManifest.xml是正确的,属性的值如果有错误,诸如<action value="<something>">之类的格式(属性值中不能出现"<"和">"。属性取值在目前的api文档中并不明确。。。),编译器是无法捕获的,但是却可以让你的程序无法显示,因为此时意向过滤器(intent filter)无法匹配这个值。多余的空格或其他一些非法的字符也可能被错误的写在属性值中。 
你是否已将你的.apk文件安装到设备中?(adb install) 
为你的设备运行logcat(adb logcat),然后安装.apk文件。查看logcat的输出看应用是否已经正确安装并被设备识别。成功安装会看到如下信息: 
I/FileObserver( 414): *** onEvent wfd: 3 mask: 8 path: MyRSSReader.apk
D/PackageManager( 414): Scanning package: /data/app/MyRSSReader.apk
D/PackageManager( 414): Adding package com.example.codelab.rssexample
D/PackageManager( 414): Registered content provider: my_rss_item, className = 
com.example.codelab.rssexample.RssContentProvider, isSyncable = false 

D/PackageManager( 414): Providers: com.example.codelab.rssexample.RssContentProvider
D/PackageManager( 414): Activities: com.example.codelab.rssexample.MyRssReader 
com.example.codelab.rssexample.MyRssReader2 

如果logcat显示在载入manifest文件的时候产生了错误,可以在你的manifest文件中键入一个空格并重新编译。 
[编辑] 我已经更新了我的应用,但这种更新并没有体现在设备上
你没有忘记把你的.apk安装到设备上吧?(adb install) 

[编辑] 在我启动一个应用的时候,产生了错误"Binary XML file line #2: You must supply a layout_wilih attribute",但是我明明已经声明了一个layout_wilih属性!!!
你确定你的Android SDK与Android OS的版本相同么?
你确定你在onCreate()中调用的setContentView()方法是处与其他方法的前面么?如果在setContentView()方法之前调用其他的方法,如setListAdapter()会产生一些古怪的错误,因为此时Android会试图访问一些还未在屏幕上生成的元素。 
[编辑] 我(通话,接收短信,接收通知,向Android应用发送意向)的请求被忽略
你可能没有权限(或者没有必要的权限)启动这些应用或者接受意向请求。许多独立的Android应用,诸如通话等,都有特定的权限,以防止其他的应用任意向他发出请求。参照安全和权限了解更多关于权限的信息。在Manifest.permission中有关于Android权限的一个列表。 

[编辑] 救命啊!我无法在Eclipse中编译我的项目!
如果你不能编译你的项目,请注意下列情况:资源文件夹中的文件没有出现在R类中,模拟器没有启动,模拟器不能运行任何应用,模拟器运行的是旧版本的应用程序。 

要解决这些问题,首先尝试如下操作: 

转到DDMS视图 
在菜单中选择Window > Open Perspective > Other 
选择DDMS,点确定 
在设备面板(缺省在右上角)中,点击向下箭头打开面板菜单 
选择菜单中的"重置 ADB",然后尝试重新影响应用程序 
如果以上的方法没有效果,请尝试如下操作: 

检查Elipse的控制台输出和错误输出 
出错的地方会显示在错误输出中 
如果你不能确定出错的地方是否已经被更新可以先清除控制台的内容,然后使用clean命令清理项目 
清理项目(很多时候,如果出现编译错误,这是一个好方法)的方法是,在Eclipse的菜单中选择Project > Clean,你可以清理当前项目,也可以清理全部项目。 
[编辑] Eclipse无法和模拟器通信
Eclipse无法和模拟器通信可能有如下现象:在你按下run按钮后没有任何反应,模拟器挂起等待调试器连接,Eclipse报告无法找到模拟器或者shell。总的说,就是你按下run按钮之后模拟器运行了(或者早就已经在运行)但是应用程序却没有启动。你可以找到很多方法来解决这些问题,通过实践,你还能发现那些步骤适合你解决你遇到的难题,但是保险起见,最好还是按顺序的执行如下方法: 

如果模拟器在运行,退出他 
检查是否所有的模拟器进程都被结束了(有时候他们是挂起的,通过任务管理器可以看到) 
退出Eclipse 
在命令行运行 
adb kill-server 
重启Eclipse 


原文链接:http://blog.csdn.net/dyllove98/article/details/4913657
加载中
返回顶部
顶部