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("\\.");//这样就可以了
在正则表达式中“.”为特殊字符,需要转义
相关文章
|
2月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
124 11
|
4月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
4月前
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
355 19
|
6月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
1138 77
|
3月前
|
安全 Java Android开发
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
152 0
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
|
4月前
|
存储 XML Java
Android 文件数据储存之内部储存 + 外部储存
简介:本文详细介绍了Android内部存储与外部存储的使用方法及核心原理。内部存储位于手机内存中,默认私有,适合存储SharedPreferences、SQLite数据库等重要数据,应用卸载后数据会被清除。外部存储包括公共文件和私有文件,支持SD卡或内部不可移除存储,需申请权限访问。文章通过代码示例展示了如何保存、读取、追加、删除文件以及将图片保存到系统相册的操作,帮助开发者理解存储机制并实现相关功能。
998 2
|
7月前
|
移动开发 安全 Java
Android历史版本与APK文件结构
通过以上内容,您可以全面了解Android的历史版本及其主要特性,同时掌握APK文件的结构和各部分的作用。这些知识对于理解Android应用的开发和发布过程非常重要,也有助于在实际开发中进行高效的应用管理和优化。希望这些内容对您的学习和工作有所帮助。
631 83
|
7月前
|
安全 Android开发 iOS开发
escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥
escrcpy 是一款基于 Scrcpy 的开源项目,使用 Electron 构建,提供图形化界面来显示和控制 Android 设备。它支持 USB 和 Wi-Fi 连接,帧率可达 30-120fps,延迟低至 35-70ms,启动迅速且画质清晰。escrcpy 拥有丰富的功能,包括自动化任务、多设备管理、反向网络共享、批量操作等,无需注册账号或广告干扰。适用于游戏直播、办公协作和教育演示等多种场景,是一款轻量级、高性能的 Android 控制工具。
468 1
|
Android开发
【错误记录】Android NDK 错误排查记录 ( error: undefined reference to | Linking CXX shared library FAILED )
【错误记录】Android NDK 错误排查记录 ( error: undefined reference to | Linking CXX shared library FAILED )
1036 0
|
Ubuntu Shell Android开发
【错误记录】Android NDK 错误排查记录 ( java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader )
【错误记录】Android NDK 错误排查记录 ( java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader )
574 0

热门文章

最新文章