尝试使用最新的Gradle构建时,我的Jenkins CI服务器上出现以下错误。
它使用最新的Android Studio(2.2稳定版)在我的本地环境中构建,但我的Jenkins服务器因此错误而失败。
对此有何想法?错误对我没有任何意义......
我确实让服务器人安装了我认为必需的JRE8。
$ /var/lib/jenkins/jobs/android-native-dev/workspace/gradlew assembleRelease
Exception in thread "main" java.lang.RuntimeException: Could not hash input string.
at org.gradle.wrapper.PathAssembler.getMd5Hash(PathAssembler.java:63)
at org.gradle.wrapper.PathAssembler.rootDirName(PathAssembler.java:52)
at org.gradle.wrapper.PathAssembler.getDistribution(PathAssembler.java:45)
at org.gradle.wrapper.Install.createDist(Install.java:43)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
Caused by: java.security.NoSuchAlgorithmException: MD5 MessageDigest not available
at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
at java.security.Security.getImpl(Security.java:695)
at java.security.MessageDigest.getInstance(MessageDigest.java:159)
at org.gradle.wrapper.PathAssembler.getMd5Hash(PathAssembler.java:58)
... 5 more
Build step 'Invoke Gradle script' changed build result to FAILURE
我使用以下配置:
gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
Project Gradle:
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
模块Gradle:
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
useLibrary 'org.apache.http.legacy'
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
}
根据docs,我的所有配置都正确,*但是我看到文档有" distributionUrl"仍然指向2.10-all(认为这只是文档错误,我在这里更正)。
答案 0 :(得分:1)
错误是由JRE8安装而不是JDK8引起的。考虑切换到JDK,因为gradle假定安装了JDK。
JDK vs JRE this image
正如您在图片中看到的那样,JRE不包含可能负责NoSuchAlgorithmException
的安全包。
答案 1 :(得分:0)
我认为我们安装的JDK已损坏或不正确。我们重新安装了JDK,但使用了本页描述的过程,以确保它是正确的。
https://askubuntu.com/questions/521145/how-to-install-oracle-java-on-ubuntu-14-04