zoukankan      html  css  js  c++  java
  • 【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文件了。

  • 相关阅读:
    84. Largest Rectangle in Histogram (Solution 2)
    84. Largest Rectangle in Histogram (Solution 1)
    73. Set Matrix Zeroes
    【JavaScript】Symbol 静态方法
    【JavaScript】Date
    【JavaScript】Math
    725. Split Linked List in Parts把链表分成长度不超过1的若干部分
    791. Custom Sort String字符串保持字母一样,位置可以变
    508. Most Frequent Subtree Sum 最频繁的子树和
    762. Prime Number of Set Bits in Binary Representation二进制中有质数个1的数量
  • 原文地址:https://www.cnblogs.com/rainmj/p/5256635.html
Copyright © 2011-2022 走看看