美文网首页android 技术知识
Android 中出现java.lang.VerifyError

Android 中出现java.lang.VerifyError

作者: 追梦小乐 | 来源:发表于2018-08-21 09:39 被阅读14次

    1、出现的原因以及解决方法

    今天在集成zxing,做代码合成二维码的时候抛出来java.lang.VerifyError这个错误,看到这个的时候我一脸懵逼,查找资料的时候,普遍都是说文件找不到或者类库重复或者混淆问题会造成这个问题

    只能根据这些大方向去一步步审查自己的项目,最后我发现我的问题出现的原因是引用zxing类库的时候出现的:

    引入zxing的时候,我是使用provided 的方式引入的

    provided 'com.google.zxing:core:3.3.0'
    

    修改为compile方式的时候,就可以正常使用了

    compile'com.google.zxing:core:3.3.0'
    

    2、compile 、provided、implementation 的区别

    2.1 compile

    其有如下的几种使用方式:

    • compile 'com.android.support:support-v4:24.0.0'
      从repository(默认是jCenter())里下载一个依赖包进行编译并打包

    • compile fileTree(dir: 'libs', include: ['*.jar'])
      引用libs下所有jar包

    • compile files('libs/xxx.jar')
      引用本地jar包

    • compile(name: 'xxxxxx', ext: 'aar')
      引用一个aar文件

    • compile project(':xxx')
      引用本地第三方类库

    2.2 provided

    基本都是说:在编译时使用,但最终不会被编译到apk或aar里

    根据我的使用经验,如果是本地的类库比如jar、aar等,只使用了其中的java类的话,可以使用这种方式来减少apk的体积

    provided files('libs/xxx.jar')
    
    2.3 implementation

    为了加快构建编译速度,Android Studio 3.0开始使用了新的指令


    图片内容来源于简书博主BrightVan 的文章

    相关文章

      网友评论

        本文标题:Android 中出现java.lang.VerifyError

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