【发布时间】:2023-03-08 15:18:01
【问题描述】:
我升级到了 Android Studio 3.0。该构建在我的 OS X 开发机器上运行良好(在 IDE 和命令行中),但在我们的 Linux 构建器(命令行)上失败。
我们的项目有一个 app 模块,它依赖于一个 common (Java) 模块和一个 lib (C++) 模块。 lib 模块使用 CMake 构建,并使用 SWIG 为 C++ 代码生成 Java API。
在构建器上,:app:javaPreCompileRelease 任务在启动 CMake 构建的 :lib:generateJsonModelRelease 之前执行。这会导致app 模块中的编译错误,因为在lib CMake 构建中尚未生成Java 类。
有没有办法强制执行这种依赖关系?我不确定为什么平台/版本之间的行为不同。
工作构建输出
:clean UP-TO-DATE
:app:clean UP-TO-DATE
:lib:externalNativeBuildCleanDebug
:lib:externalNativeBuildCleanRelease
:lib:clean UP-TO-DATE
:common:clean UP-TO-DATE
:app:preBuild UP-TO-DATE
:lib:preBuild UP-TO-DATE
:lib:preReleaseBuild UP-TO-DATE
:lib:checkReleaseManifest
:lib:processReleaseManifest
:common:preBuild UP-TO-DATE
:common:preReleaseBuild UP-TO-DATE
:common:checkReleaseManifest
:common:processReleaseManifest
:app:preReleaseBuild
:lib:compileReleaseAidl
:common:compileReleaseAidl
:app:compileReleaseAidl
:lib:packageReleaseRenderscript NO-SOURCE
:common:packageReleaseRenderscript NO-SOURCE
:app:compileReleaseRenderscript
:app:checkReleaseManifest
:app:generateReleaseBuildConfig
:app:prepareLintJar
:app:generateReleaseResValues
:app:generateReleaseResources
:lib:compileReleaseRenderscript
:lib:generateReleaseResValues
:lib:generateReleaseResources
:lib:packageReleaseResources
:common:compileReleaseRenderscript
:common:generateReleaseResValues
:common:generateReleaseResources
:common:packageReleaseResources
:app:mergeReleaseResources
:app:createReleaseCompatibleScreenManifests
:app:processReleaseManifest
:app:splitsDiscoveryTaskRelease
:lib:platformAttrExtractor
:common:platformAttrExtractor
:lib:generateReleaseBuildConfig
:lib:prepareLintJar
:lib:javaPreCompileRelease
:lib:processReleaseJavaRes NO-SOURCE
:common:generateReleaseBuildConfig
:common:prepareLintJar
:common:javaPreCompileRelease
:common:processReleaseJavaRes NO-SOURCE
:app:compileReleaseNdk NO-SOURCE
:app:mergeReleaseShaders
:app:compileReleaseShaders
:app:generateReleaseAssets
:lib:mergeReleaseShaders
:lib:compileReleaseShaders
:lib:generateReleaseAssets
:lib:mergeReleaseAssets
:common:mergeReleaseShaders
:common:compileReleaseShaders
:common:generateReleaseAssets
:common:mergeReleaseAssets
:app:mergeReleaseAssets
:app:mergeReleaseJniLibFolders
:lib:generateJsonModelRelease
... CMake 构建开始;构建成功完成
构建输出失败
:clean UP-TO-DATE
:app:clean UP-TO-DATE
:lib:externalNativeBuildCleanDebug
:lib:externalNativeBuildCleanRelease
:lib:clean UP-TO-DATE
:common:clean UP-TO-DATE
:app:preBuild UP-TO-DATE
:lib:preBuild UP-TO-DATE
:lib:preReleaseBuild UP-TO-DATE
:lib:checkReleaseManifest
:lib:processReleaseManifest
:common:preBuild UP-TO-DATE
:common:preReleaseBuild UP-TO-DATE
:common:checkReleaseManifest
:common:processReleaseManifest
:app:preReleaseBuild
:lib:compileReleaseAidl
:common:compileReleaseAidl
:app:compileReleaseAidl
:lib:packageReleaseRenderscript NO-SOURCE
:common:packageReleaseRenderscript NO-SOURCE
:app:compileReleaseRenderscript
:app:checkReleaseManifest
:app:generateReleaseBuildConfig
:app:prepareLintJar
:app:generateReleaseResValues
:app:generateReleaseResources
:lib:compileReleaseRenderscript
:lib:generateReleaseResValues
:lib:generateReleaseResources
:lib:packageReleaseResources
:common:compileReleaseRenderscript
:common:generateReleaseResValues
:common:generateReleaseResources
:common:packageReleaseResources
:app:mergeReleaseResources
:app:createReleaseCompatibleScreenManifests
:app:processReleaseManifest
:app:splitsDiscoveryTaskRelease
:lib:platformAttrExtractor
:common:platformAttrExtractor
:common:processReleaseResources
:lib:processReleaseResources
:app:processReleaseResources
:app:generateReleaseSources
:lib:generateReleaseBuildConfig
:lib:prepareLintJar
:lib:generateReleaseSources
:lib:javaPreCompileRelease
:lib:compileReleaseJavaWithJavac
:lib:processReleaseJavaRes NO-SOURCE
:lib:transformClassesAndResourcesWithPrepareIntermediateJarsForRelease
:common:generateReleaseBuildConfig
:common:prepareLintJar
:common:generateReleaseSources
:common:javaPreCompileRelease
:common:compileReleaseJavaWithJavac
:common:processReleaseJavaRes NO-SOURCE
:common:transformClassesAndResourcesWithPrepareIntermediateJarsForRelease
:app:javaPreCompileRelease
...编译有关缺少应在 CMake 构建中生成的 Java 类的错误
【问题讨论】:
标签: android android-studio gradle