安卓:找不到或加载不了主类org.gradle.wrapper.GradleWrapperMain

9

我正在尝试在GitLab CI上构建我的项目,但不幸的是,我一直在运行器内遇到以下错误:

Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

现在我知道我的环境出了问题,但我就是想不明白这个问题。我在网上搜索后发现需要更新我的.gitignore文件,我做了并放在这里:

### Java ###
*.class

### Android ###
*.apk
*.ap_

### Package files ###
*.war
*.ear
*.aar

### Gradle ###
.gradle
 build
bin/
build/
build.xml
gen/
.gradle/
gradlew
gradlew.bat
gradle-wrapper.jar
gradle-wrapper.properties

### Android Studio ###
.idea
local.properties
.DS_Store
/captures

我还修改了gradle.build文件,添加了以下内容:

task wrapper(type: Wrapper) {
gradleVersion = '2.0' 
}

但是,每次我运行构建时都会得到堆栈错误!这是我的.gitlab-ci.yml文件:

before_script:
- apt-get --quiet update --yes
- apt-get --quiet install --yes wget tar unzip openjdk-7-jdk lib32stdc++6   lib32z1
 - wget --quiet --output-document=gradle.zip https://services.gradle.org/distributions/gradle-2.8-bin.zip
 - unzip -q gradle.zip
 - export ANDROID_HOME="/opt/android-sdk"
 - chmod +x gradlew

 dev:
 script:
 - ./gradlew assembleDebug

出现错误的代码行为:

- wget --quiet --output-document=gradle.zip https://services.gradle.org/distributions/gradle-2.8-bin.zip
3个回答

8
根据你的gitignore文件,CI永远不会获取gradle-wrapper.jar库,因为它尚未被提交,但它必须被提交,因为它用于运行wrapper。
请检查gradle-wrapper.jar是否已经提交,如果没有,请先提交它。

2

我尝试运行时出现了此错误:

./gradlew releaseTarGz
Could not find or load main class org.gradle.wrapper.GradleWrapperMain

我的错误在于我没有阅读或遵循指示:我需要先运行这两个命令来初始化:

gradle
./gradlew jar

然后,./gradlew releaseTarGz 就可以按预期找到主类。


1

@Stanislav,你说的部分正确。我设法找出了问题,当然,正如预期的那样,它就在我的眼前。所以众所周知,GitLab CI上的运行者都是“空”的。这意味着它们上面没有安装任何东西。这就是为什么我们有.gitlab-ci.yml。现在回头看我的.gitlab-ci.yml,我告诉运行者获取jdk7&gradle,但我漏掉了Android SDK,这就是为什么会出现错误:

Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

所以我的新.gitlab-ci.yml看起来像这样,并且编译正常:

before_script:
- apt-get --quiet update --yes
- apt-get --quiet install --yes wget tar unzip openjdk-7-jdk lib32stdc++6   lib32z1
- wget --quiet --output-document=android-sdk.tgz https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
- tar --extract --gzip --file=android-sdk.tgz
- echo y | android-sdk-linux/tools/android --silent update sdk -a -u -t 1,2,3,4,5,6,29,31,32,33,34,45,138,142,145,146,147,148,149,150,151
- wget --quiet --output-document=gradle.zip https://services.gradle.org/distributions/gradle-2.12-bin.zip
- unzip -q gradle.zip
- export ANDROID_HOME=$PWD/android-sdk-linux

build:
script:
- gradle-2.12/bin/gradle assembleDebug
artifacts:
paths:
- app/build/outputs/apk/app-release-unsigned.apk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接