【问题标题】:Gradle build fails after upgrading to Android plugin 3.0升级到 Android 插件 3.0 后 Gradle 构建失败
【发布时间】: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


    【解决方案1】:

    虽然我没有找到让构建正常运行的方法,但我可以分两步运行它:

    ./gradlew lib:assembleRelease
    ./gradlew assembleRelease
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 2021-12-19
      • 2021-05-26
      相关资源
      最近更新 更多