您的位置:首页 > 移动开发 > Android开发

【Android】常见问题解答

2016-03-09 08:20 387 查看
这里汇总了用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文件了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: