Android 中出现java.lang.VerifyError:/xxx/xxx/xxx文件路径错误

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开始使用了新的指令


Android 中出现java.lang.VerifyError:/xxx/xxx/xxx文件路径错误_第1张图片
图片内容来源于博主BrightVan 的文章

你可能感兴趣的:(Android 中出现java.lang.VerifyError:/xxx/xxx/xxx文件路径错误)