一尘不染

编写Android项目时的常见错误

java

在Android项目上工作时应注意哪些常见错误?

这些可以是

  • Android特定错误
  • Java特定错误

阅读 131

收藏
2020-12-03

共1个答案

一尘不染

我将列出一些错误,我总是会遇到。

文章-十大Java错误

  • NullPointer错误

    1. 当我使用未初始化的变量或对象时,我们正在创建。(Java)
    2. 当我们使用不在xml中的布局布局视图时,我们在上下文中设置的视图。(Android)
  • ClassCast异常

    • 当程序尝试将对象转换为不兼容的类型时。(例如:当我尝试使用在xml布局中声明为相对布局的线性布局时)。
  • StackOverflowError

    • 它也可能发生在正确编写(但深度递归)的程序中。(java和android)
    • 当程序变得无限递归时。
    • 我们创建的布局(深度和复杂)超过了平台或虚拟机的堆栈。递归或布局太多会在Android中创建堆栈溢出错误
    • 内部布局太多。
  • ActivityNotFoundException :无法找到明确的活动类异常

    • 该活动未在清单中声明。
  • Android securityException

    • 您需要在应用程序中声明所有许可。清单中,您的应用程序检查了此链接 (互联网,访问联系人,gps,wifi状态,写入SDCard等)。
  • OutofMemoryError

    • 当使用可用的平台资源无法满足对内存的请求时。主要使用位图,图库等
  • 应用程序无响应(ANR)

    • 主要是在您使网络功能正常或过程较长时出现。

这将阻止UI线程,因此用户无法执行任何工作。为了避免 ANR
阅读与此

这是我在创建Android Project时主要获得的东西。

  • 尝试 在程序的所有位置中使用 Try-Catch 块。 不要 将catch块留空,因为这会隐藏错误:

是:

 try{
    // try something
  } catch (Exception e) {
      Log.e("TAG", "Exception in try catch", e);
      return false;
  }
  return true;

没有:

  try{
    // try something
  } catch (Exception e) {
    return false;
  }
  return true;

对布局中的所有变量和ID 使用正确的 命名转换 。*


我从网上读了一篇文章,其中包含一些错误,现在我要补充说,如果它有冗余,请原谅。

问题
:我以前不错的RelativeLayout正在制作一个丑陋的堆,或者某些元素不再可见…这是怎么回事?我只是在其中移动了一个元素…解决方案:永远不要忘记,在RelativeLayout中,元素是相对于其邻居进行引用和放置的。元素之间的关系层次结构中可能存在问题。尝试在Eclipse中打开大纲视图,然后单击每个元素以查看破裂的位置。

问题
:RelativeLayout中不存在循环依赖项解决方案:您可能已经以两种不同的方式编写了相同的依赖项。例如,一个ImageView作为TextView的android:layout_toRightOf属性,而TextView具有android:layout_toLeftOf该ImageView。只需要其中之一

问题
:我为我的一个视图/布局编写了一种样式,但是当我在xml中应用它时,我在Eclipse的布局查看器中没有显示解决方案:不幸的是,这似乎是android
ADT的错误它,但到目前为止没有消息。无论如何,没有恐慌的样式可以很好地工作,但是在Eclipse中无法正确显示它们。只需构建该应用程序,然后在模拟器或电话上启动它,您就会看到一切正常。

问题 :Toast编写正确,但未显示任何解决方案:这是一个常见的使用错误:只需添加.show()方法以显示Toast并查看其是否工作正常

问题
:我试图显示来自strings.xml的字符串,但是我只有一个数字,如0x7f060001解决方案:这不是错误,由于Android处理资源的方式只是显示。当您要检索资源时,必须使用诸如getString(R.id.something),getDrawable之类的方法,否则,您只需要显示用R类编写的引用即可。

问题
:代码中的某些更改对应用程序没有任何影响解决方案:有2个选项,要么您忘记了Toast的.show()之类的东西,要么模拟器未正确更新您的应用程序。在这种情况下,您必须在Eclipse中的模拟器的启动配置中选中“擦除用户数据”选项。

问题
:如何在我的桌子上显示边框?解决方案:在android中没有直接的方法,您必须使用一个技巧:http : //www.droidnova.com/display-borders-in-
tablelayout,112.html

问题 :模拟器正在用日语编写,而无需更改任何参数解决方案:有时会发生这种情况,很容易解决,只需长按任意EditText字段,然后将输入类型更改为所需

问题 :我无法在仿真器中显示上下文菜单解决方案:长时间单击仿真器似乎并不能在每种视图上注册,您必须按4个方向箭头中心的按钮

问题 :我正在关注有关地图路线的教程,但无法正常工作,android找不到包解决方案:您可能一直在关注为1.5
SDK编写的教程。目前,有一个程序包可在android中显示路由,但已在下一个SDK中将其删除,并且不再可用。只是不可能了。KML文件似乎有一个窍门,但没有官方规定

问题 :将坐标发送到仿真器会给出错误的位置解决方案:确保您编写的坐标类似于51.16548,而不是51,16548或5116548

问题
:只有创建视图层次结构的原始线程才能触摸其视图。解决方案:您必须尝试从UI线程以外的其他线程更新视图内容。修补此问题的2个选项:在您的UI线程中创建一个处理程序,然后将您的Runnable发布到此处理程序,或使用方法runOnUIThread来运行进行更新的代码行

问题 :访问localhost 127.0.0.1不起作用解决方案:它起作用,您只是没有以正确的方式使用:使用10.0.2.2

2020-12-03