安卓警告及错误的解决汇总

2019-02-28  本文已影响0人  biyu6

1.运行模拟器无法启动:

Please ensure Intel HAXM is properly installed and usable.
解决:安装图示的加速器
模拟器无法启动的解决.png

2.Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.

译文:配置“compile”已过时,已替换为“implementation”和“api”。
在app-build.gradle 的 dependencies 中引用的一些三方库 是以compile 开头的,例如:

    compile 'io.reactivex:rxjava:1.1.5'
    compile 'io.reactivex:rxandroid:1.2.0'
将其替换为:
    implementation 'io.reactivex:rxjava:1.1.5'
    implementation 'io.reactivex:rxandroid:1.2.0'

3.Android保存资料到SD卡报错的解决

保存信息到/mnt/sdcard/目录下,日志打印如下:
Emulator without host-side GPU emulation detected. Loading gralloc.default.so from /vendor/lib/hw/gralloc.default.so...

原因:模拟器sdcard没有分配内存空间
 解决:找到你运行的模拟器,点击Edit,给sd卡分配一个内存空间
给模拟器的sd卡分配空间.png

4.Android在Eclipse中不显示超类AndroidTestCase的解决

单元测试时,创建继承自AndroidTestCase超类时,找不到这个超类
找不到.png
百度只有一条,还答非所问(我已更新回答)

原因:安卓版本造成的

解决步骤如下:
    1.菜单进入project- Properties- Android中
    2.在Project Build Target里面勾选支持的最低版本的安卓SDK。
我将Android 9 改成了Android 4.1.2 ,然后就OK了
修改的方法.png 正常的.png

5.Activity跳转错误-回到了上一页

问题描述:
    1.我有三个Activity:Activity_test1、Activity_test2、Activity_test3
    2.Activity_test1 跳 Activity_test2,Activity_test2 跳 Activity_test3
    3.Activity_test2上有一个button,xml布局中设置了onClick="clickJumpToTest3",结果在点击该方法时,却没有跳转到Activity_test3,而是又回到了Activity_test1.

错误原因:
  实现clickJumpToTest3的方法写成了private 私有的,将其改为public即可
错误的代码:
  private void clickJumpToTest3(View view){
        Intent intent = new Intent(getApplicationContext(),Activity_test3.class);
        startActivity(intent);
    }
正确的代码:
  public void clickJumpToTest3(View view){
        Intent intent = new Intent(getApplicationContext(),Activity_test3.class);
        startActivity(intent);
    }

6.传值失败导致返回上一页

错误描述:点击传值跳转下一页Activity时,跳转到了上一页
错误提示: Caused by: android.os.TransactionTooLargeException: data parcel size 12698024 bytes
错误原因:传递的参数或返回的值过大
规则描述:
    1.调用的参数和返回值是要转换成 Parcel 对象进行传递的;
    2.Parcel 对象是存储在 Binder transaction buffer 里面的;
    3.如果参数或者返回值过大,导致buffer放不下的话,程序就会失败并且抛出 TransactionTooLargeException 异常;
    4.这个 Binder transaction buffer 有一个固定的大小 1MB;
    5.这个1MB空间是提供给一个进程的所有 transaction 使用的,因此transaction调用的参数大小并不大但是数量很多的时候,也会抛出这个 Exception;
解决方法:
    让所有的 transaction 尽可能的小;
    尽量去缩小远程调用 Service 的参数大小和返回值;
    禁止传递大数组、String 字串或者一个大的 Bitmap 对象;
    如果可以的话,尽量把大的请求分解成一个个小的调用;
上一篇下一篇

猜你喜欢

热点阅读