当前位置: 首页 > 知识库问答 >
问题:

Jetpack在现有多模块应用程序中组合依赖项

翟光赫
2023-03-14

我面临的问题,当集成jetpack compose在一个多模块的项目。

一个模块库具有jetpack compose的所有依赖项,并且我能够编译和运行在该模块中编写的jetpack compose代码。

 android {
    ...
   kotlinOptions {
      jvmTarget = '1.8'
      useIR = true
   }

   buildFeatures {
      compose true
   }

   composeOptions {
      kotlinCompilerExtensionVersion compose_version
      kotlinCompilerVersion '1.4.21'
   }
 }


dependencies {
   ...
   implementation "androidx.compose.ui:ui:$compose_version"
   implementation "androidx.compose.material:material:$compose_version"
   implementation "androidx.compose.ui:ui-tooling:$compose_version"
   ...
}

其中compose_version='1.0.0-alpha09'

当我将库模块添加到应用程序模块中并将jetpack组件集成在其中时,问题就出现了。它还需要在应用程序模块的build.gradle.kts文件中添加所有依赖项。

在添加相同的行代码之后,gradle任务(:app:CompileDebugKotlin)继续在无限循环中运行,没有任何错误消息。

我在这里做错了什么?任何帮助都是值得的。谢谢!

Update-1运行gradlew compileDebugKotlin--debug,它卡在stack-trace下面

2020-12-30T12:26:42.079+0530 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on 
daemon addresses registry.
2020-12-30T12:26:42.079+0530 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire 
shared lock on daemon addresses registry.
2020-12-30T12:26:42.080+0530 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on 
daemon addresses registry.
2020-12-30T12:26:42.080+0530 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on 
daemon addresses registry.

共有1个答案

穆展鹏
2023-03-14

我遇到过一个非常相似的问题,完全相同的StackTrace。在我的例子中,它是由kotlin synthetic(android-kotlin-extensions)插件造成的。删除插件(如添加buildFeatures{compose true}中所建议的,会导致构建无限期地进行。如何调查问题?)解决了问题。

 类似资料:
  • 我正在重构一个具有相当多依赖项的JavaWeb应用程序。我想使用,将作为底层日志实现。但是,该应用程序包含一些Spring依赖项。Spring使用JCL(Jakarta common logging)进行日志记录,因此它引入了,作为一个可传递的依赖项。这是一个潜在的问题,因为这意味着可能会使用作为日志实现,而Spring可能会以不希望的方式在某个地方进行日志记录。 根据slf4j文档,解决方案是首

  • 当使用一些第三方库时,我将依赖项添加到模块的build.gradle文件中。 或者我添加一个插件 有时,库需要向应用的build.gradle文件添加依赖项。 这些依赖项和插件之间有什么区别 为什么不能在一个构建中设置它们。格雷德尔档案? 所有的建议都很感谢,我在搜索这方面的信息时遇到了困难

  • 我开发并发布了一个使用Apache Batik和JavaCV的Java Swing应用程序。我已经通过java 1.6、7和8对其进行了更新。macOS、Windows和Linux的安装程序是使用Javapackager构建的。Java 8将于1月19日停止支持,我找不到一个解决方案来打包和分发新的LTS版本Java 11。 JavaCV和Batik都不生产模块化jar,但我已经成功地对它们进行了

  • Velocity 不依赖 jQuery Velocity.js 可以在不引入 jQuery 的情况下单独使用。如果 你需要大部分动画效果能兼容 IE8,就必须引入 jQuery 1×。 它也可以和 Zepto 一起使用,写法和 jQuery 一样: // 无 jQuery 或 Zepto 时,Velocity()方法挂载在 window 对象上 (window.velocity) // ( 第一

  • 我有一个关于Maven依赖解析机制如何在多模块项目中工作的问题。 通常,我只在构建多模块项目时使用“mvn clean install”,我的假设是,如果项目中的任何模块需要以前的模块,依赖关系将通过访问本地存储库并加载相应的“jar”来解决。 由于项目内部原因,我必须使用“mvn清洁编译”,这个命令自然不会创建任何“jar”,而“install”不存在。所以在这里我开始想知道,多模块项目的依赖项

  • 我有一个多模块maven项目。请在父POM下方找到。 儿童POM如下所示。 我已经在parent中声明了从slf4j进行日志记录,但在eclipse中没有生成相同的maven依赖项,因此我无法在代码中使用日志记录。谁能告诉我这里出了什么问题吗。