Android常见错误及解决办法(一直更新)

大家可以把自己知道的写在回复中 帮助扩展此博客 (添加的内容会注释上奉献人的博客  乐于奉献 帮助他人

1、 Failed to install on device 'emulator-5554': timeout



解决办法:eclipse -> window -> Preferences -> Android ->
DDMS -> ADB connection time out(ms).把这个时间设置的长一些,默认是5秒,
改成20秒就可以了。


2、找不到activity类: android.content.ActivityNotFoundException: Unable to find explicit activity class {xxxx}


解决办法:在AndroidMainifest.xml中注册找不到的activity
如:<activity android:name=".xxxActivity" >
        </activity>
3、无法使用网络:Permission denied(maybe missing internet permission) 等等提提示 么有权限的 (黄色字体提示)
解决办法:在AndroidMainifest.xml中增加允许使用网络选项(在</application>结束标签之后>):

<uses-permission android:name="android.permission.INTERNET" />

其他的使用权限,也应该在要使用时到AndroidMainifest.xml添加权限,比如:我们在开发手机蓝牙功能时,就必须添加相应的蓝牙权限。
4、 如何提高ListView的刷新效率?
解决办法:基于AbsListView类的控件比如 ListView、GridView等等都需要通过绑定Adapter来实现数据更新,这里操作Adapter我们一般设计的尽量布局文件简练高效些,比如布局使用Java代码编写代替Xml文件,控制刷新范围,可以考虑ArrayAdapter,而不是BaseAdapter的派生类。
5、如何解决加载大图片出现的OOM内存溢出问题?

解决办法:首先,尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存。 其次,可以改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 source, decodeStream最大的秘密在于其直接调用JNI>>nativeDecodeAsset()来完成decode, 无需再使用java层的createBitmap,从而节省了java层的空间。 如果在读取时加上图片的Config参数,可以跟有效减少加载的内存,从而跟有效阻止抛out of Memory异常 。另外,decodeStream直接拿的图片来读取字节码了, 不会根据机器的各种分辨率来自动适应, 使用了decodeStream之后,需要在hdpi和mdpi,ldpi中配置相应的图片资源, 否则在不同分辨率机器上都是同样大小(像素点数量),显示出来的大小就不对了。

点击这里:第一个:有关详细的图片加载以及防止OOM的方法  第二个:有关详细的图片加载以及防止OOM的方法2

6、无法加载xml中的view,报 java.lang.NullPointerException 异常;
解决办法:可能忘记加载activity的layout文件:

setContentView(R.layout.main);

如果是引用的非activity的View则

View view=LayoutInfliter.form(Context).inflater(R.layout.*****);

view.findViewById(****);//记得是view.


7、Intent intent=new Intent();
        intent.setClass(Activity1.this,Activity2.class);
        startActivity(intent);
        使用Intent打开另一个Activity时,可能出现以下错误:
“sorry! the application has stopped unexpectedly,please try again”.
解决办法:要启动的Activity没有在AndroidManifest.xml文件中声明,解决方法当然是声明该Activity
8、 在新的线程中 public class HttpThread extends Thread {...}
增加一个弹出窗体:
new AlertDialog.Builder(this).setTitle("数据加载失败").setMessage("请检查网络连接情况")
.setPositiveButton("OK", new DialogInterface.OnClickListener()
{            
    public void onClick(DialogInterface dialoginterface, int i){}            
}).show();
出现:java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare();
解决办法:
不能在线程中操作UI界面,应该按如下方法:
new AlertDialog.Builder(com.nantsing.infoquery.chuanbo_detail.this).setTitle("数据加载失败").setMessage("请检查网络连接情况")           .setPositiveButton("OK", new DialogInterface.OnClickListener(){    public void onClick(DialogInterface dialoginterface, int i){}


9、Android如何动态改变ImageView的大小
解决办法:在layout.xml文件中定义了ImageView的绝对大小后,无法动态修改以后的大小显示,其实平台在设计UI控件时考虑到这个问题,为了适应不同的Drawable可以通过在xml的相关ImageView中加入android:scaleType="fitXY" 这行即可,但因为使用了缩放可能会造成当前UI有所变形。使用的前提是限制ImageView所在的层,可以使用一个内嵌的方法限制显示。


10、Android中bitmap的平移操作如何完成?
解决办法:对于平移我们可以通过Canvas类的public void translate (float dx, float dy) 方法来实现,参数一为平面x轴的位置,类型为浮点型,参数二为y轴的位置。不使用Matrix类,我们可以直接构造一个空的Bitmap对象,通过Canvas类提供的drawBitmap方法画出我们需要的Bitmap对象,然后调用translate方法来实现平移,比如将位图向右平移2个像素,可以为translate(2,0) 而向下移动3个像素translate(0,-3)。
11、Android中ListView在ScrollView中无法正常显示
解决办法:对于ListView放在ScrollView中时,目前Android平台仍然存在bug,状态是显示的ListView仅仅是一行半。通过Layout布局属性设置目前仍然无法修正。通过分析ListView和ScrollView的构造没有发现好的解决办法。但是可以通过自己实现ListView来解决。一种方案是:重写ListView的onMeasure()重新计算显示行数。第二种方案是:使用RelaiveLayout布局方式,可以满足ScrollView构造。


12、Android中Drawable,Bitmap,Canvas以及Paint的关系与区别?


Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。
Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。
Canvas - 名为画布,我们可以看作是一种处理过程,使用各种方法来管理Bitmap、GL或者Path路径,同时它可以配合Matrix矩阵类给图像做旋转、缩放等操作,同时Canvas类还提供了裁剪、选取等操作。

Paint - 我们可以把它看做一个画图工具,比如画笔、画刷。他管理了每个画图工具的字体、颜色、样式。

13.我们写的更新界面的部分代码没有反应,比如:Toast显示,alterDialog,更新UI等

以上的错误很可能是因为你的这部分代码写在了异步线程中了  记着所有的能改变界面显示的代码必须全部写在主线程中 

在异步线程的时候就用Handler发送过去再更新

14. Eclipse中签名导出apk崩溃,手动签名。
工程没问题,调试也没问题,但打包的时候eclipse会崩溃,解决方法是手动打包。
首先去工程目录下的bin文件夹下找到apk文件,解压后删除META-INF文件夹,重新打包成压缩包,改后缀名为.apk
首先是签名(假设你已经在根目录下生产了密钥keystore):
进入java安装目录/bin文件夹下:
./jarsigner  -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore android.keystore ~/Output.apk android
然后是优化,进入sdk的tools文件夹下,运行。
./zipalign -v 4 ~/Output.apk Output_realase.apk
当前目录下Output_realase.apk就是打包签名好的apk了。

15.android.view.InflateException: Binary XML file line #异常的解决
创建自定义view的时候,碰到 android.view.InflateException: Binary XML file line #异常,反复研究
后发现是缺少一个构造器造成。
public MyView(Context context,AttributeSet paramAttributeSet)
{
      super(context,paramAttributeSet);

补齐这个构造器,异常就消失了.


16.INSTALL_FAILED_INSUFFICIENT_STORAGE(感谢小伙伴xyz125301的贡献
原因:SD卡内存容量不够
法一:在“Additional Emulator Command Line Options”中加上“-partition-size 128”
法二:启动模拟器,然后进入菜单
settings->applications->mange applications-> select the application->select "unistall".
这样就能彻底删除了,然后再重新安装这个apk就没问题了

推荐另外一篇相关文章:IOS常见错误及分析

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 1. Gradle同步失败:这可能是由于Gradle版本不兼容或网络连接问题引起的。可以尝试更改Gradle版本或检查网络连接。 2. 编译错误:这可能是由于代码错误、缺少依赖项或版本不兼容引起的。可以尝试修复代码错误、添加缺少的依赖项或更改版本。 3. 设备连接问题:这可能是由于设备驱动程序问题、USB连接问题或设备未启用调试模式引起的。可以尝试更新设备驱动程序、更换USB线或启用调试模式。 4. Emulator启动问题:这可能是由于Emulator配置错误、缺少系统镜像或硬件要求不满足引起的。可以尝试更改Emulator配置、下载所需的系统镜像或升级计算机硬件。 5. 插件问题:这可能是由于插件版本不兼容或插件未正确安装引起的。可以尝试更新插件版本或重新安装插件。 6. 资源文件问题:这可能是由于资源文件缺失、命名错误或格式不正确引起的。可以尝试添加缺失的资源文件、更正命名错误或更改格式。 7. Android SDK问题:这可能是由于Android SDK未正确安装或版本不兼容引起的。可以尝试重新安装Android SDK或更改版本。 8. 版本控制问题:这可能是由于版本控制冲突或错误引起的。可以尝试解决版本控制冲突或撤销错误提交。 9. 内存问题:这可能是由于内存不足或内存泄漏引起的。可以尝试优化代码、释放不必要的内存或增加计算机内存。 10. 其他问题:这可能是由于其他未知问题引起的。可以尝试查找错误日志或寻求帮助。 ### 回答2: Android Studio是一款非常流行的开发Android应用程序的集成开发环境,但是在使用中,会出现一些常见错误。下面我们将介绍一些常见错误解决方案。 1. Gradle build错误: 这个错误通常表示您的构建脚本存在问题。要解决此问题,请检查gradle脚本是否有任何语法错误或逻辑错误,并且您的依赖项是否正确。 2. 资源未找到错误: 这个错误通常发生在您未正确引用资源文件。要解决此问题,请检查资源引用的文件名是否正确,以及是否正确引用资源的文件夹。 3. 编译错误: 这个错误通常发生在您的代码存在语法错误或逻辑错误。请检查您的代码是否正确,并且是否使用正确的Java语法。 4. 设备连接错误: 这个错误通常表示您的Android设备无法与Android Studio建立连接。要解决此问题,请检查您的连接是否正确,并检查您的设备是否启用了USB调试模式。 5. Emulator启动失败: 这个错误通常表示您的模拟器配置存在问题。要解决此问题,请检查您的模拟器配置是否正确,并确保您的计算机满足模拟器的要求。 6. 编译版本错误: 这个错误通常表示您的项目使用了错误的编译版本。要解决此问题,请确保您的编译版本正确,并重新构建您的项目。 总之,在使用Android Studio开发应用程序时,常见错误是无法避免的。但是,遵循最佳实践并遵循正确的开发流程可以减少这些错误的发生。在出现错误时,要保持冷静,并找到正确的解决方案以解决问题。 ### 回答3: Android Studio是开发Android应用程序时最流行的集成开发环境,但是使用它时还是会出现一些常见错误。本文将介绍一些Android Studio常见错误及其解决方案。 1. Gradle错误 Gradle是Android Studio使用的构建工具,它负责将Java代码编译成可执行的Apk文件。Gradle错误可能是由于网络连接问题造成,也可能是代码中存在错误解决方案:如果Gradle下载失败,则可以尝试手动下载Gradle文件并将其复制到Gradle目录中。如果Gradle构建过程中发生错误,则可以尝试清除Gradle缓存,重新构建项目或者检查项目中的代码错误。 2. Emulator错误 Android Studio自带模拟器(Emulator),但它不太流畅,并且需要大量的系统资源。如果模拟器出现了错误,可能会影响应用程序的开发和测试。 解决方案:使用其他第三方模拟器,例如Genymotion。如果计算机配置过低,可以尝试使用真实设备进行测试。 3. SDK路径错误 Android Studio需要指定Android SDK的路径。如果SDK路径错误,则可能导致应用程序无法正常构建和运行。 解决方案:在Android Studio中打开SDK管理器,检查SDK路径是否正确。如果SDK路径错误,则可以手动更改路径并重新启动Android Studio。 4. 版本兼容问题 Android应用程序的版本兼容问题可能会导致一些错误,例如在运行时出现异常或应用程序在某些设备上无法运行。 解决方案:检查应用程序在不同版本的Android系统上的兼容性,使用最新的Android SDK版本和Android API,并在应用程序中使用适当的兼容性库。 5. Android Studio崩溃 Android Studio可能会崩溃并导致应用程序无法运行。这可能是因为缺少系统资源或由于Android Studio本身的错误解决方案:尝试关闭Android Studio并重新打开它。如果问题依然存在,则可以尝试重新安装Android Studio或更新到最新版本。 总之,在使用Android Studio时,经常会遇到各种各样的错误,但这不是问题,所有的错误都是可以解决的。要想有效的解决错误,需要仔细阅读错误信息,并仔细调试问题。只要专注和耐心,相信你可以轻松解决Android Studio的所有常见错误

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值