这里汇总了用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】常见问题解答的更多相关文章

  1. Delphi XE5 常见问题解答

    Delphi XE5 常见问题解答 有关于新即时试用的问题吗?请看看 RAD Studio 即时试用常见问答. 常见问题 什么是 Delphi? Embarcadero? Delphi? XE5 是易 ...

  2. web前端工程师面试技巧 常见问题解答

    web前端工程师面试技巧 常见问题解答 每年的春招是各企业需求人才的黄金时期,不少的前端大牛或者前端新手在面试时候不知道怎么来回答面试官的问题,下面来看下我转载的这篇文章吧,希望对从事前端工作的你有所 ...

  3. MySQL同步常见问题解答(自己的小心得)

    前几天刚刚注册了博客园,我想写一些技巧性的教程,今天给大家分享一个MySQL同步常见问题解答. Q:如果主服务器正在运行并且不想停止主服务器,怎样配置一个从服务器? A:有多种方法.如果你在某时间点做 ...

  4. Android自动化压力测试之Monkey Test Android常见的错误类型及黑白名单的使用方法(四)

    Android常见的错误类型有两种 1.ANR类型 1)在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸) 2)BroadcastReceiver在10秒内没有执行完毕 2.Crash类型 1)异 ...

  5. SSL/TLS 高强度加密: 常见问题解答

    关于这个模块 mod_ssl 简史 mod_ssl会受到Wassenaar Arrangement(瓦森纳协议)的影响吗? mod_ssl 简史 mod_ssl v1 最早在1998年4月由Ralf ...

  6. Android 常见工具类封装

    1,MD5工具类: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0' ...

  7. android 常见死机问题--log分析

    http://blog.csdn.net/fangchongbory/article/details/7645815         android 常见死机问题--log分析============ ...

  8. [!!!!!]Inno Setup教程-常见问题解答

    [转]Inno Setup教程-常见问题解答 功能 * 翻译 Inno Setup 文字  * 它支持 MBCS (多字节字符集) 吗?  * 将来会支持 Windows Installer 吗?   ...

  9. 英特尔® 实感™ SDK 前置摄像头 (F200) 常见问题解答

    原文地址 https://software.intel.com/zh-cn/articles/intel-realsense-sdk-faq-for-front-facing-camera-f200? ...

  10. 我个人有关 Azure 网络 SLA、带宽、延迟、性能、SLB、DNS、DMZ、VNET、IPv6 等的 Azure 常见问题解答

    Igor Pagliai(微软)   2014 年 9月 28日上午 5:57  年 11 月 3 年欧洲 TechEd 大会新宣布的内容). 重要提示:这篇文章中我提供的信息具有时间敏感性,因为这些 ...

随机推荐

  1. IIS 之 Web 服务器上的 ASP.NET 进程模型设置

    配置 Microsoft Internet 信息服务 (IIS) Web 服务器上的 ASP.NET 进程模型设置. processModel 节只能在 Machine.config 文件中进行设置, ...

  2. URLRewriter.dll的使用

    http://www.cnblogs.com/Jaylong/archive/2011/10/17/url.html 微软URLRewriter.dll的url重写的简单使用 先添加引用URLRewr ...

  3. 【读书笔记】Flickr 网站用户标签的质量控制对策

    1.一些背景 标签技术重要意义 标签技术如今已经被广泛应用于包括网络书签.博客.播客.视频分享等在内的多种 Web2. 0 服务 Flickr简介 Flickr 是一集图片存放 交友 组群 邮件等功能 ...

  4. MySQL Cluster管理节点配置文件-数据节点4G内存

    自己测试机器上搭建使用,大家可以参考一下 [NDBD DEFAULT] #TotalSendBufferMemory = 256M NoOfReplicas=2 DataMemory=2500M In ...

  5. Struts2(三)更改字符编码

    一.导入包和struts配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE stru ...

  6. Field.setAccessible()方法

    http://blog.csdn.net/kjfcpua/article/details/8496911 java代码中,常常将一个类的成员变量置为private 在类的外面获取此类的私有成员变量的v ...

  7. HDOJ 4686 Arc of Dream 矩阵高速幂

    矩阵高速幂: 依据关系够建矩阵 , 高速幂解决. Arc of Dream Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/ ...

  8. 自我分析-Spring IOC

    Spring IOC容器实现原理大致是容器(Map)+反射(Java反射和cglib).Spring提供丰富的ApplicationContext.以FileSystemXmlApplicationC ...

  9. git检查与放弃本地的代码修改情况

    git diff  可以查看当前没有add 的内容修改(不在缓冲区的文件变化) git diff --cached查看已经add但没有commit 的改动(在缓冲区的文件变化) git diff HE ...

  10. 变量名解析:LEGB原则

    # -*- coding: cp936 -*- #python 27 #xiaodeng #变量名解析:LEGB原则 ''' L-----local 局部名字空间 E-----enclosing 直接 ...