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