【Android】常见问题解答
这里汇总了用C#和VS2015开发Android App时一些常见的最基本的问题及解决办法,以后有新的问题时都在这里一并回答。
问题1:项目无法正常运行,怎么回事?
【解答】
正常情况下,选择某个模拟器以后,它会自动启动并将程序部署到模拟器上。
如果是新建的项目出现的问题,一般都是环境安装不正确造成的。
如果是自己编写程序后出现的问题,一般都是清单配置不合适造成的。
不论是哪种情况,都可以通过下面的步骤找错。
(1)检查项目配置
主菜单-->【工具】-->【选项】-->【Xamarin】,查看环境配置是否正确。注意下面界面中的绿色选项和复选框都要正确。

(2)检查版本是否符合要求
按<F5>键调试之前,要确保你选择的模拟器和你的清单配置一致。
查看清单配置:在解决方案资源管理器中,双击【Properties】文件夹,在弹出的项目属性配置界面中,查看最低版本(第2项)是否满足你启动的模拟器版本要求:

(3)通过输出窗口查找错误
观察运行后【输出】窗口输出的内容,看是否有错误信息。
注意下面截图中下拉框中的几个选项都要看看是否有错。

一般都能从这个输出窗口输出的信息中看到是什么问题。
如果还找不到问题,就用logcat查看(下一步)。
(4)用logcat查看错误

点击启动logcat的快捷键以后,就会出现下面的界面:

单击上面的【Change Device】快捷键,就会出现下面的界面:

这个截图表示你还没有启动模拟器,此时,要确保按<F5>键时已经选择了某个模拟器:

选择模拟器后按<F5>键,它就会自动启动你选择的模拟器。
如果这个截图中没有可选择的模拟器,说明你的模拟器创建有问题。
(5)检查logcat输出的信息
如果你是独立启动的模拟器,而不是通过按<F5>键启动它,如下图所示:

当你选择的模拟器启动后,再次按照第(4)步那样运行logcat,应该看到下面的界面:

选中它找到的模拟器,按【OK】,然后观察它输出的内容:

(6)检查清单配置是否有错
注意清单文件(AndroidManifest.xml)中的首行:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="MyDemos.MyDemos" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
这个android:installLocation="auto"表示如果找不到对应的.so文件,它会自动将其安装到模拟器上。
通过上面的步骤,一般都能把问题解决掉。
如果还找不到问题,请把步骤说详细点并截图,否则别人也看不明白你的问题是什么。
问题2:如何将文件复制到模拟器的SD卡上
【问题描述】有时候需要在模拟器上模拟用户通过手机下载的文件或程序,比如将音乐文件或视频文件从硬盘复制到模拟器的SD卡上,有没有简单的操作办法呢?
【解答】
办法如下:
1、找到你创建的模拟器文件,例如:
C:\Users\用户名\.android\avd\Galaxy_Api19.avd\sdcard.img
或者
C:\Users\用户名\.android\avd\Galaxy_Api23.avd\sdcard.img
2、用UltraISO或者其他虚拟光驱软件打开这个文件,然后复制硬盘上的文件,粘贴到该文件中SD卡对应的目录下,比如粘贴到Download文件夹下,然后保存.img文件。
以后再打开模拟器,就能看到Download文件夹下已经有这些文件了。这些文件的用法和你将文件下载到手机上以后的用法相同。
问题3:Resources.GetDrawable()被标记为已过时,如何解决?
Resources类中有两个静态方法从API level 22开始被标记为已过时:
过时的方法:
Resources.Drawable GetDrawable(int id)
替代方法1:
Context.GetDrawable(int)
其中,Context为上下文对象,例如:this. GetDrawable(…)
替代方法2:
Drawable Resources.GetDrawable(int id, Resources.Theme theme)
其中,第二个参数@theme可以为null。.
过时的方法:
Drawable Resources.GetDrawableForDensity(int id, int density)
替代的方法:
Drawable Resources.GetDrawableForDensity(int id, int density, Resources.Theme theme)
其中,第二个参数@theme可以为null。.
这两个方法被标记为已过时的原因:在比Android 4.1版本更低的版本中,当传递的资源ID是另一个Drawable资源的别名时,过时的方法不能正确地获取到最终配置density,即别名资源(alias resource)的density配置不同于实际资源导致返回的Drawable对象的density不正确,这样缩放时将出错。
问题4:创建或编辑.cs文件时,有时会出现基类颜色不变且智能提示失效的情况,怎么回事?
这是因为你刚添加的资源文件(比如布局文件)有错,在你更正这些错误之前,它不希望你继续编辑.cs文件,因为继续编辑会导致更多错误。
解决办法:查看你刚添加的资源文件(.xml或者.axml),把错误更正后,基类颜色和智能提示就会自动变为可用,此时就可以继续编辑.cs文件了。
【Android】常见问题解答的更多相关文章
- Delphi XE5 常见问题解答
		
Delphi XE5 常见问题解答 有关于新即时试用的问题吗?请看看 RAD Studio 即时试用常见问答. 常见问题 什么是 Delphi? Embarcadero? Delphi? XE5 是易 ...
 - web前端工程师面试技巧 常见问题解答
		
web前端工程师面试技巧 常见问题解答 每年的春招是各企业需求人才的黄金时期,不少的前端大牛或者前端新手在面试时候不知道怎么来回答面试官的问题,下面来看下我转载的这篇文章吧,希望对从事前端工作的你有所 ...
 - MySQL同步常见问题解答(自己的小心得)
		
前几天刚刚注册了博客园,我想写一些技巧性的教程,今天给大家分享一个MySQL同步常见问题解答. Q:如果主服务器正在运行并且不想停止主服务器,怎样配置一个从服务器? A:有多种方法.如果你在某时间点做 ...
 - Android自动化压力测试之Monkey Test Android常见的错误类型及黑白名单的使用方法(四)
		
Android常见的错误类型有两种 1.ANR类型 1)在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸) 2)BroadcastReceiver在10秒内没有执行完毕 2.Crash类型 1)异 ...
 - SSL/TLS 高强度加密: 常见问题解答
		
关于这个模块 mod_ssl 简史 mod_ssl会受到Wassenaar Arrangement(瓦森纳协议)的影响吗? mod_ssl 简史 mod_ssl v1 最早在1998年4月由Ralf ...
 - Android 常见工具类封装
		
1,MD5工具类: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0' ...
 - android 常见死机问题--log分析
		
http://blog.csdn.net/fangchongbory/article/details/7645815 android 常见死机问题--log分析============ ...
 - [!!!!!]Inno Setup教程-常见问题解答
		
[转]Inno Setup教程-常见问题解答 功能 * 翻译 Inno Setup 文字 * 它支持 MBCS (多字节字符集) 吗? * 将来会支持 Windows Installer 吗? ...
 - 英特尔® 实感™ SDK 前置摄像头 (F200) 常见问题解答
		
原文地址 https://software.intel.com/zh-cn/articles/intel-realsense-sdk-faq-for-front-facing-camera-f200? ...
 - 我个人有关 Azure 网络 SLA、带宽、延迟、性能、SLB、DNS、DMZ、VNET、IPv6 等的 Azure 常见问题解答
		
Igor Pagliai(微软) 2014 年 9月 28日上午 5:57 年 11 月 3 年欧洲 TechEd 大会新宣布的内容). 重要提示:这篇文章中我提供的信息具有时间敏感性,因为这些 ...
 
随机推荐
- 灰度图像二值化-----c++实现
			
前天闲着没事干,就写了写BMP图像处理,感觉大家还比较感兴趣..所以现在没事,继续更新..这次简单的写了灰度图像二值化..这是什么概念呢? 图像的二值化的基本原理 图像的二值化处理就是将图像上的点的灰 ...
 - hdu4497 GCD and LCM
			
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total S ...
 - Java总结:Java 流(Stream)、文件(File)和IO
			
更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的 ...
 - c-fmt-fn标签用法
			
c-fmt-fn标签用法 CreateTime--2017年1月6日15:48:43 Author:Marydon 一.参考链接 http://blog.csdn.net/fmwind/artic ...
 - mysql 设置密码
			
法一: 格式:mysqladmin -u用户名 -p旧密码 password 新密码 方法二:1.用root 进入mysql后mysql>set password =password('你的密码 ...
 - Java多线程中run(), start(), join(), wait(), yield(), sleep()的使用
			
Run 每个Thread中需要实现的方法, 如果直接调用的话, 会是和单线程一样的效果, 要另起线程需要使用start(). start 新起线程调用run(). 主线程不等待直接往下执行 Yield ...
 - cocos2dx跟eclipse交叉编译“make: * No rule to make target `all' Stop”的解决方案
			
cocos2dx和eclipse交叉编译“make: *** No rule to make target `all'. Stop”的解决方案 搞cocos2dx在eclipse上的交叉编译. 项目. ...
 - Ubuntu共享WiFi(AP)给Android方法
			
更新: 2012-03-03 Android是不支持Ad-hoc模式的WiFi.Windows 7软AP一个还是比较简单的.本文介绍在Ubuntu下实现软AP.(需要你的无线网卡支持AP哈) ...
 - HDUOJ---2642Stars(二维树状数组)
			
Stars Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/65536 K (Java/Others)Total Submi ...
 - window.postMessage实现网页间通信
			
window.postMessage() 方法可以安全地实现跨域通信.通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为https),端口号(443为https的默认值),以 ...