美文网首页
Android错误记录

Android错误记录

作者: 李晓通 | 来源:发表于2017-08-10 14:44 被阅读71次

    前言

    昨天集成网易云信的时候发生的,最终找到了解决方案,记录一下。
    The number of method references in a .dex file cannot exceed 64K.
    就是这个问题。

    错误原因

    这个错误出现的原因是因为App的方法数是有限制的,好像是64000个,听起来是不是不可能出现,但是我就是碰到了。。。当然jar包重复也会出现这个错误,但是我jar包看了好几遍,真的是没重复,但是没办法啊,错误来了总要解的。

    解决方案

    1. 有重复jar包去掉重复jar包
    2. 如果没有重复的jar包,那么就看接下来的操作

    首先app的 build.gradle 中
    (1)在dependencies 中添加

    compile 'com.android.support:multidex:1.0.1'

    (2)在 defaultConfig 中添加

    multiDexEnabled true

    比如这样

     android { 
       compileSdkVersion 25  
       buildToolsVersion '25.0.3'   
    
       defaultConfig { 
           applicationId "XXXXXX"  
           minSdkVersion 16 
           targetSdkVersion 25  
           versionCode 1 
           versionName "1.00"  
           multiDexEnabled true  
      }
    buildType{
           release { 
                minifyEnabled false  
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
            } 
    } 
    dependencies { 
            compile fileTree(include: ['*.jar'], dir: 'libs') 
            .......
            com.android.support:multidex:1.0.1' 
    }
    

    (3)在你自己的Application类里面重写方法

    @Override
     protected void attachBaseContext(Context base) {  
         super.attachBaseContext(base);   
          MultiDex.install(this) ;
    }
    

    到此就可以解决64K的问题了。

    解决底部虚拟按钮遮挡问题

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                Window window = getWindow();
                window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
                        | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
                window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                window.setStatusBarColor(Color.TRANSPARENT);
                window.setNavigationBarColor(Color.TRANSPARENT);
            } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0
                WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
                localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
            }
    

    Git忽略文件

    1、在项目根目录添加文件.gitignore内容如下

    *.iml
    .gradle
    .idea
    /local.properties
    /.idea/workspace.xml
    /.idea/vcs.xml
    /.idea/libraries
    .DS_Store
    /build
    /captures
    *.apk
    

    2、在module的目录下添加.gitignore内容如下

    /build
    

    以上纯属于个人平时工作和学习的一些总结分享,如果有什么错误欢迎随时指出,大家可以讨论一起进步。

    相关文章

      网友评论

          本文标题:Android错误记录

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