我正在尝试进行简单的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.installCMake
和com.android.builder.sdk.DefaultSdkLoader.installSdkTool
的源代码的地方。
我的搜索是未完成的。
我可以根据要求提供有关我的设置的更多信息。(即Android Project,Docker Image,Gitlab-Ci.yml等(
好吧,姆伯丁在2月2日在这里评论说,通过使用较低的gradle构建工具,它为他解决了问题。(即classpath 'com.android.tools.build:gradle:2.2.2
(。
尝试了一个错误后,我的构建脚本通过了这个错误!(有人知道为什么吗?(
感谢您的情感支持堆栈溢出!你是最好的!