Could not get resource ‘/com/android/tools/build/gradle/1.3.1/gradle-1.3.1.pom‘.
问题一
今天在新的mac上安装的新的Android Studio,运行gradle assembleRelease
命令时,会出现下边的错误:
FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring root project 'react_native_helloworld'.> Could not resolve all dependencies for configuration ':classpath'.> Could not resolve com.android.tools.build:gradle:1.3.1.Required by::react_native_helloworld:unspecified> Could not resolve com.android.tools.build:gradle:1.3.1.> Could not get resource '/com/android/tools/build/gradle/1.3.1/gradle-1.3.1.pom'.> Could not HEAD '/com/android/tools/build/gradle/1.3.1/gradle-1.3.1.pom'.> peer not authenticated* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.BUILD FAILED
解决方法:
在项目级的build下将两个jcenter() 替换成 jcenter { url “/“} ,在重新编译打包即可。
问题二
上边问题解决后,再重新编译打包可能会出现,这个问题:
FAILURE: Build failed with an exception.* Where:Build file '/Users/shitianci/work/Lab/panda.android/PandaAndroidDemo/build.gradle' line: 1* What went wrong:A problem occurred evaluating project ':PandaAndroidDemo'.> java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppPlugin : Unsupported major.minor version 52.0* Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.BUILD FAILED
直接点击 run按钮 或者 Build→Generate Build APK 却运行正常。
这里面有两个问题:
1. 为什么出现Unsupported major.minor version 52.0?
2. 为什么gradle命令和android studio按钮运行结果不一样?
为什么出现Unsupported major.minor version 52.0?
在网上找了一圈,最后在stackoverflow找到了本质原因
You get this error because a Java 7 VM tries to load a class compiled for Java 8Java 8 has the class file version 52.0 but a Java 7 VM can only load class files up to version 51.0In your case the Java 7 VM is your gradle build and the class is com.android.build.gradle.AppPlugin
简单来说,就是java的编译环境版本太低,java 8 class file的版本是52,Java 7虚拟机只能支持到51。所以需要升级到java 8 vm才行。
我们打开项目的配置可以看到,这个JDK使用的是Android studio自带的,是Java8应该没有问题的,但是我的环境变量配置的是java7,gradle默认使用的是配置了环境变量的jdk。
解决方法
而gradle命令的执行环境是在gradle.properties配置的,添加一句(这个是自己的JDK的路径):
org.gradle.java.home=/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
问题解决。
参考:
问题一参考
问题二参考