美文网首页
安卓警告及错误的解决汇总

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

作者: biyu6 | 来源:发表于2019-02-28 14:15 被阅读0次

    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 对象;
        如果可以的话,尽量把大的请求分解成一个个小的调用;
    

    相关文章

      网友评论

          本文标题:安卓警告及错误的解决汇总

          本文链接:https://www.haomeiwen.com/subject/qcbhuqtx.html