android 开发中遇到的错误及解决方式(更新R.java文件不能自动更新问题)

简介: 1、当import一个新的android项目时,项目名称上出现一个红色的感叹号,程序不能运行。

1当import一个新的android项目时,项目名称上出现一个红色的感叹号,程序不能运行。

原因:工程中classpath中指向的包路径错误。

解决方法:在项目名称上点右键选择Properties,然后选择Java Bulid Path中的libraries选项,其中出现红色x号的路径为错误路径,删除之后,通过Add External Jars添加正确路径,点击确定之后,在Package Explorer中刷新一下。


2、当点击Eclipse中的Properties中的Android选项时,出现“the currently displayed page contains invalid values”。

原因:项目丢失了default.properties文件所致。

解决方法:从其他项目中重新拷贝一个default.properties文件,并修改文件中的target值。或者,将项目根目录下的project.properties改名为default.properties


3、引入一个新的项目后,丢失android.jar文件。

解决方法:在项目名称上点右键,选择Properties,再选择Android,再在其中选择一个project build target,点确定之后,如还有问题,尝试在项目名称上点右键,然后选择Android Tools,再点 Fix Project properties


4、出现leak window错误。

原因:Android的每一个Activity都有个WindowManager窗体管理器,同样,构建在某个Activity之上的对话框、PopupWindow也有相应的WindowManager窗体管理器。因为对话框、PopupWindown不能脱离Activity而单独存在着,所以当某个Dialog或者某个PopupWindow正在显示的时候我们去finish()了承载该Dialog(PopupWindow)Activity时,就会抛Window Leaked异常了,因为这个Dialog(PopupWindow)WindowManager已经没有谁可以附属了,所以它的窗体管理器已经泄漏了。
解决方法:关闭(finish)某个Activity前,要确保附属在上面的DialogPopupWindow已经关闭(dismiss)了。
     

  @Override 
      public void onPause(){
         super.onPause();
         if(pw != null) {
              pw.dismiss(); 
         }
      } 

参考:http://blog.csdn.net/andy_android/article/details/7304761


5、Eclipse中显示行号

在代码编写区的靠近左侧边框处,点右键选择Show Line Numbers,即可显示行号。


6、在使用ImageViewsetImageResource(int res id)方法时遇到一个java.lang.OutOfMemoryError:bitmap size exceeds VM budget错误。

原因:图片占用的内存超出了系统分配的最大内存限制,导致内存溢出。

解决方法:使用BitmapFactory的带有Options参数的方法解析图片资源,具体如代码:

 
  

BitmapFactoty.options opts = new BitmapFactory.Options();
opts.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeResource(Resources res, int 		id,opts);

当然当 bitmap 不用的时候,应该强制回收一下,具体如下:

if(bitmap != null && !bitmap.isRecycled()){
bitmap.recycle();
}


另外应注意代码的优化,比如不要重复初始化变量,尽量使用局部变量,尽量使用staticfinalprivate等关键字等等。
3月10日更新
 7、java.lang.IllegalStateException: The specified child already has a parent You must call removeView() on the child's parent first这个三言两语解释不清楚,看我博文: 
  
 
  http://blog.csdn.net/yaolingrui/article/details/7339913 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
 
8、在64位ubuntu配置android开发环境时(其实这种情况在64的linux上经常出现)惊现:“Failed to create the SD card.”和“Failed to create sdcard in the AVD folder.”

这种情况如果在64位机上出现时,可能就是因为你没有安装支持32位软件的ia32-libs。遇到这种情况时,

可以在命令行输入:$sudo apt-get install ia32-libs。

具体可参考:http://stackoverflow.com/questions/3878445/ubuntu-error-failed-to-create-the-sd-card


04.20更新
9.一般在Android工程下的R.java文件是自动生成的,即使你手动删除了,如果你选择了Project->Build Automatically之后,也会自动生成。但有时却发现新的资源文件在R.java文件中不能生成相应的id,并且这时如果将该R.java文件删除了的话,也不会自动生成,即使build也不行。这时的问题很可能就是因为你的资源文件有问题造成的,比如布局文件写的格式不规范,或者命名时有大写字母等等。

04.21更新
Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag
意思是说在Activity的上下文环境之外启动新的Activity,这时需要设置新Activity的启动模式为FLAG_ACTIVITY_NEW_TASK,task相当于Activity的容器,当前Activity位于task的最上端,可以让很多Activity位于一个task,也可以让不同的Activity位于不同的Task。
做法
Intent intent =  new Intent(getApplicationContext, Xxxx.class);
intent.addFlags(Intent, FLAG_ACTIVITY_NEW_TASK);
getApplicationContext.startActivity(intent);

11.去掉ListView中各个item之间的横线。
mListView.setDividerHeight(0);

12.String中的split
"abcdsa.afac.casdf".split(".");//这样是不行的
"afda.aafa.cadsfd.asd".split("\\.");//这样就可以了
在正则表达式中“.”为特殊字符,需要转义
相关文章
|
4天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
17 0
|
2天前
|
存储 监控 Java
如何在Java中实现等待文件修改后再读取数据的功能?
如何在Java中实现等待文件修改后再读取数据的功能?
6 0
|
2天前
|
存储 Java 数据格式
Java实战:轻松掌握文件重命名与路径提取技巧
Java实战:轻松掌握文件重命名与路径提取技巧
8 0
|
2天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
8 0
|
4天前
|
Java 索引
Java String应用与开发
Java String应用与开发
12 0
|
4天前
|
存储 Java Linux
【Java EE】 文件IO的使用以及流操作
【Java EE】 文件IO的使用以及流操作
|
5天前
|
安全 Java 开发者
构建高效微服务架构:后端开发的新范式Java中的多线程并发编程实践
【4月更文挑战第29天】在数字化转型的浪潮中,微服务架构已成为软件开发的一大趋势。它通过解耦复杂系统、提升可伸缩性和促进敏捷开发来满足现代企业不断变化的业务需求。本文将深入探讨微服务的核心概念、设计原则以及如何利用最新的后端技术栈构建和部署高效的微服务架构。我们将分析微服务带来的挑战,包括服务治理、数据一致性和网络延迟问题,并讨论相应的解决方案。通过实际案例分析和最佳实践的分享,旨在为后端开发者提供一套实施微服务的全面指导。 【4月更文挑战第29天】在现代软件开发中,多线程技术是提高程序性能和响应能力的重要手段。本文通过介绍Java语言的多线程机制,探讨了如何有效地实现线程同步和通信,以及如
|
5天前
|
存储 缓存 安全
【专栏】如何在 Java 中创建临时文件?
【4月更文挑战第28天】本文介绍了Java中创建临时文件的两种方法:使用`File.createTempFile`和自定义创建。`File.createTempFile`能生成唯一文件名,但默认不自动删除;自定义创建则提供更大灵活性,但需手动管理。临时文件常用于数据缓存、文件上传下载和日志记录,使用时需注意文件清理、唯一性和权限设置。
|
7天前
|
安全 算法 Java
写给Java开发的Go语言协程实践
写给Java开发的Go语言协程实践
13 0
|
7天前
|
存储 前端开发 Java
Java实现文件分片上传
Java实现文件分片上传
9 0