【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 大会新宣布的内容). 重要提示:这篇文章中我提供的信息具有时间敏感性,因为这些 ...
随机推荐
- Android动态加入控件约束位置
用LayoutParams: RelativeLayout insertLayout = (RelativeLayout)view1.findViewById(R.id.screen);//scree ...
- JavaScript 之 截取字符串函数
一.函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str=”jpg|bmp|gif|ico|png”; arr=theString.split(”|”); //a ...
- Oracle function实现根据输入的日期以及天数,获取此日期之后的天数的工作日
前提:在法定节日表(t_fdjr )中维护法定节日包括周六周天 /** * 功能描述:根据输入的日期以及天数,获取此日期之后的天数的工作日 * 输入参数: * i_date YYYY-MM-DD * ...
- 使用ADS1.2的注意事项及常用技巧
如果创建的项目中有多个文件时(尤其是编译后的镜像大小超过4K时),一定要在link order栏下调整文件顺序,主要是前几个文件的顺序(2440init.s.2440slib.s.nand.c这三个文 ...
- Emmet初探2
关于Emmet Emmet插件的前身是Zen coding,可以大幅度提高前端开发效率的一个工具,也有人说类似于jade(高性能的模板引擎,它深受 Haml 影响,它是用 JavaScript 实现的 ...
- Linux不用使用软件把纯文本文档转换成PDF文件的方法
当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些.比如,PDF更适合打印,因为PDF文档有预定义布局.除此之外,还可以减少文档被意外修改的风险. 要将文本文件转换成PDF格式,你要按照 ...
- linux修改 时间 时区
linux系统修改系统时间与时区 | 浏览:3486 | 更新:2014-06-18 19:36 1 2 3 4 5 6 7 分步阅读 有装过Linux系统的人,可能都会有这样的经历,就是该机器安装w ...
- vs2017预览版下载
vs2017预览版,没有限制的不过不能生成生产版本,集成最新的功能! 下载地址: https://www.visualstudio.com/zh-hans/vs/preview/
- web.xml文件头出错
原先将web.xml文件头设置为如下格式 <?xml version="1.0" encoding="UTF-8"?><web-app ver ...
- 使用SafeIP隐藏自己的IP
资料:http://www.cnblogs.com/KeenLeung/p/3482241.html 1.到网上下载SafeIP这个工具,安装,打开 2.选择自己熟悉的语言: 3.到www.ip138 ...