提问者:小点点

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


我面临的问题,当集成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个答案

匿名用户

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