Gradle项目使用zxing在windows下报错:android:jar must specify an absolute path but is /${env.ANDROID_HOME}/…

Gradle项目使用zxing在windows下报错:android:jar must specify an absolute path but is /${env.ANDROID_HOME}/…

idea在windows上build基于Gradle的SpringBoot项目报错 :

> Task :prepareKotlinBuildScriptModel UP-TO-DATE
Errors occurred while build effective model from C:Usersyzsdt.gradlecachesmodules-2files-2.1com.google.zxingcore3.4.07eab116a61512d8b669efcd69446cc45243bd28core-3.4.0.pom:
    'dependencyManagement.dependencies.dependency.systemPath' for com.google.android:android:jar must specify an absolute path but is /${env.ANDROID_HOME}/platforms/android-22/android.jar in com.google.zxing:core:3.4.0

BUILD SUCCESSFUL in 2s

根据错误提示应该是com.google.zxing包通过ANDROID_HOME变量引用了android.jar。

解决方法

1、将android.jar引用删除

这个过程有些曲折,通过报错信息中的路径找到了com.google.zxing的pom文件,但是在其中没有发现android.jar的引用,后来在zxing的parent的pom中找到了android.jar的引用,将其注释,保存。

2、将相对路径改为绝对路径

<!-- ANDROID_HOME must be absolute, but redundant leading / may help Gradle Spring Boot plugin -->

  <systemPath>/${env.ANDROID_HOME}/platforms/android-${android.platform}/android.jar</systemPath>

报错信息提示需要改为绝对路径,而且在zxing的parent的pom中也明确这一点

因此将systemPath改为一个绝对路径并且在该路径下新建了一个空的android.jar(新建一个txt,改名为android.jar),保存。

参考资料:

https://blog.csdn.net/c5113620/article/details/104656630
https://github.com/zxing/zxing/issues/904
https://github.com/zxing/zxing/issues/941

原文地址:https://www.cnblogs.com/geniuszhd/p/13586353.html