• 【Android】常见问题解答


    这里汇总了用C#和VS2015开发Android App时一些常见的最基本的问题及解决办法,以后有新的问题时都在这里一并回答。

    问题1:项目无法正常运行,怎么回事?

    【解答】

    正常情况下,选择某个模拟器以后,它会自动启动并将程序部署到模拟器上。

    如果是新建的项目出现的问题,一般都是环境安装不正确造成的。

    如果是自己编写程序后出现的问题,一般都是清单配置不合适造成的。

    不论是哪种情况,都可以通过下面的步骤找错。

    (1)检查项目配置

    主菜单-->【工具】-->【选项】-->【Xamarin】,查看环境配置是否正确。注意下面界面中的绿色选项和复选框都要正确。

    image

    (2)检查版本是否符合要求

    按<F5>键调试之前,要确保你选择的模拟器和你的清单配置一致。

    查看清单配置:在解决方案资源管理器中,双击【Properties】文件夹,在弹出的项目属性配置界面中,查看最低版本(第2项)是否满足你启动的模拟器版本要求:

    image

    (3)通过输出窗口查找错误

    观察运行后【输出】窗口输出的内容,看是否有错误信息。

    注意下面截图中下拉框中的几个选项都要看看是否有错。

    image

    一般都能从这个输出窗口输出的信息中看到是什么问题。

    如果还找不到问题,就用logcat查看(下一步)。

    (4)用logcat查看错误

    image

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

    image

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

    image

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

    image

    选择模拟器后按<F5>键,它就会自动启动你选择的模拟器。

    如果这个截图中没有可选择的模拟器,说明你的模拟器创建有问题。

    (5)检查logcat输出的信息

    如果你是独立启动的模拟器,而不是通过按<F5>键启动它,如下图所示:

    image

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

    image

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

    image

    (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用户名.androidavdGalaxy_Api19.avdsdcard.img

    或者

    C:Users用户名.androidavdGalaxy_Api23.avdsdcard.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文件了。

  • 相关阅读:
    io几乎没有,iowait却很高
    rcu使用遇到问题汇总
    Groovy In Action 笔记 (5) -- List 相关
    Groovy In Action 笔记 (4) -- String相关
    Groovy In Action 笔记 (3) -- 基本数据类型
    Groovy In Action 笔记 (2) -- '=='与‘equals’
    Groovy In Action 笔记 (1) -- 概述
    ansible notes
    grafana中如何根据label选取数据
    向node_exporter中添加新监控信息
  • 原文地址:https://www.cnblogs.com/rainmj/p/5256635.html
Copyright © 2020-2023  润新知