美文网首页
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