Android Gradle - Gitlab CI - Docker语言 - CMake - NullPointerExc



我正在尝试进行简单的Android单元测试以在Gitlab CI上运行,但是我遇到了麻烦,可以在CI Docker Image中正确构建东西。我有master项目,该项目从Library项目中撤出。该库中有C代码,因此我需要使用Cmake将其构建。所有这些都在使用Android Studio时在我的Windows机器上在本地工作。但是,一旦我搬到CI服务器,事情就会随着以下错误而破裂:

使用增量Javac汇编进行:库调试。增量Java汇编是一种孵化功能。检查包装CMAKE的许可证3.6.3155560在/Android-SDK-Linux/许可证中CAPPAY CMAKE的许可证3.6.3155560接受。准备"安装CMAKE 3.6.3155560(修订:3.6.3155560("。"安装CMAKE 3.6.3155560(修订:3.6.3155560("完成"安装CMAKE 3.6.3155560(修订:3.6.3155560("在/android-sdk-linux/cmake/3.6.3155560中安装CMAKE 3.6.3155560"安装CMAKE 3.6.3155560(修订:3.6.3155560("完成。"安装CMAKE 3.6.3155560(修订:3.6.3155560("完成。失败:构建失败而异常。* 什么地方出了错:出现了一个问题,即配置项目':library'。> java.lang.nullpointerexception(无错误消息(* 尝试:使用-Debug选项运行以获取更多日志输出。*例外是:org.gradle.api.projectConfigurationException:配置项目':Library'的问题。    at org.gradle.configuration.project.lifecycleprojectevaluator.addconfigurationfailure(lifecycleprojectevaluator.java:94(    at org.gradle.configuration.project.lifecycleprojectevaluator.notifyafterevaluate(lifecycleprojectevaluator.java:89(    ...    atrg.gradle.internal.concurrent.executorpolicy $ catchandRecordFailures.Onexecute(executorpolicy.java:54(    atorg.gradle.internal.concurrent.stoppableExecutorimpl $ 1.run(stoppableExecutorimpl.java:40(引起的:java.lang.nullpointerexception    在com.android.builder.sdk.defaultsdkloader.installsdktool(defaultsdkloader.java:572(    在com.android.build.gradle.internal.sdkhandler.installcmake(sdkhandler.java:302(    在com.android.build.gradle.tasks.externalnativejsongenerator.create(externalNativeJsongenerator.java:628(    在com.android.build.gradle.internal.taskmanager.createexternalnativebuildjsongenerator(taskmanager.java:1241(    在com.android.build.gradle.internal.librarytaskmanager.lambda $ createTasksSsssforvariantdata $ 11(librarytaskmanager.java:240(    ...    在com.sun.proxy。    at org.gradle.configuration.project.lifecycleprojectevaluator.notifyafterevaluate(lifecycleprojectevaluator.java:82(    ... 56构建失败总时间:1分钟25.384秒停止0个工人守护程序。接收结果失败[value = org.gradle.initialization.reportedexception:org.gradle.internal.exceptions.locationawareexception:出现问题,是从daemon daemoninfo {pid = 39,地址= [1F3B75F9-708080-7080--7080--7080--7080--708080--70'。48B5-B298-0E6136640A0A端口:41964,地址:[/127.0.0.0.1]] b/b/JVM/Java-8-openjdk-Amd64,DaemonRegistrydir =/root/.gradle/daemon,pid = 39,idletimeout = 10800000,daemonopts = -xmx1536m,-dfile.encoding = uscoding = utf-8,-8,-duser.country,-dusertry,-duserer。语言= en,-duser.variant]}(应进行构建(。错误:作业失败:退出代码1

通过行判断

Caused by: java.lang.NullPointerException
    at com.android.builder.sdk.DefaultSdkLoader.installSdkTool(DefaultSdkLoader.java:572)
    at com.android.build.gradle.internal.SdkHandler.installCMake(SdkHandler.java:302)

看来这是CMAKE的问题。但是看起来它已安装,并且许可证在上方块开始时的输出所指出。


谁能给我一些有关问题的指示?
* Gradle不知道CMAKE在哪里安装?* NDK可能是一个问题吗?*或我可以找到com.android.build.gradle.internal.SdkHandler.installCMakecom.android.builder.sdk.DefaultSdkLoader.installSdkTool的源代码的地方。
我的搜索是未完成的。

我可以根据要求提供有关我的设置的更多信息。(即Android Project,Docker Image,Gitlab-Ci.yml等(

好吧,姆伯丁在2月2日在这里评论说,通过使用较低的gradle构建工具,它为他解决了问题。(即classpath 'com.android.tools.build:gradle:2.2.2(。

尝试了一个错误后,我的构建脚本通过了这个错误!(有人知道为什么吗?(

感谢您的情感支持堆栈溢出!你是最好的!

最新更新