java - 编写Android项目时的常见错误

标签 java android

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

这些可以是

  • Android特定错误
  • Java特定错误
  • 最佳答案

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

    Article - Top 10 Java Errors

  • NullPointer错误
  • 当我使用我们正在创建的未初始化变量或对象时。 (Java)
  • 当我们使用不在xml中的布局布局 View 在上下文中设置的 View 时(android)


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


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


  • ActivityNotFoundException :无法找到明确的 Activity 类异常
  • 该 Activity 未在 list 中声明。


  • Android securityException
  • 您需要在应用程序中声明所有权限。
    检查这个link
    (互联网,访问联系人,gps,wifi状态,写入SDCard等)。


  • OutofMemoryError

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


  • 应用程序无响应(ANR)
  • 主要是在使网络功能或一些漫长的过程中出现。

  • this will block UI Thread so user can not do any work. to avoid ANR read this & this


    这是我在创建Android Project时主要获得的东西。
  • 尝试使用

    试着抓

    在程序的所有位置中阻止。 不要保留您的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使用正确的命名转换。*

    我从网上读取one article,它包含一些错误,现在我要补充说,如果它具有冗余,请原谅。

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

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

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

    问题:
    吐司书写正确,但不显示任何内容
    解决方案 :
    这是一个常见的使用错误:只需添加.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字段,然后将输入类型更改为所需的类型即可。

    问题:
    我无法使上下文菜单出现在模拟器中
    解决方案 :
    在模拟器上长按一下似乎并不会在每种 View 上注册,您必须按4个方向箭头中心的按钮

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

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

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

    问题:
    访问本地主机127.0.0.1不起作用
    解决方案 :
    它有效,您只是没有以正确的方式进行操作:请使用10.0.2.2

    关于java - 编写Android项目时的常见错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5441049/

    相关文章:

    java - Android 库中的 Android NoClassDefFound

    java - java中重写equal方法的正确方法是什么?

    java - 如何使用每个类继承创建 IDENTITY 主键列?

    android - 来自 Android 开发人员的 Timepicker 不允许静态

    android - 尝试使用 Twitter 登录 Firebase 时出现 NullPointerException

    android - 如何在 Fragments 中使用 setArguments() 和 getArguments() 方法?

    Android AVD : Not starting OS, 仅黑屏

    java - 显示 Math.tan() 的值(以度为单位)?

    java - 生成一个范围内的随机 double

    java - 在表面 View 中打开前置摄像头