2

我正在尝试在我的代码上调用 DrawImage(),我正在关注本教程 Jetpack Tutorial

但我收到了这个错误。:

未解决的参考:DrawImage

我尝试在 build.gradle 上实现,这个 lib.: implementation 'androidx.ui:ui-foundation:0.1.0-dev04'

但我收到此错误。:

执行任务:项目 C:\Users\samue\Desktop\Projetos Kotlin\first-jetpack 中的 [clean, :app:assembleDebug]

任务 :clean 任务 :app:clean 任务 :app:preBuild UP-TO-DATE 任务 :app:preDebugBuild UP-TO-DATE 任务 :app:compileDebugAidl NO-SOURCE 任务 :app:generateDebugBuildConfig 任务 :app:compileDebugRenderscript NO-SOURCE 任务:app:prepareDebugKotlinCompileTask 任务 :app:generateDebugResValues 任务 :app:generateDebugResources 任务 :app:createDebugCompatibleScreenManifests 任务 :app:extractDeepLinksDebug 任务 :app:processDebugManifest 任务 :app:mergeDebugResources 任务 :app:processDebugResources

任务 :app:compileDebugKotlin 失败 w: 注意!此构建使用不安全的内部编译器参数:

-XXLanguage:+NonParenthesizedAnnotationsOnFunctionalTypes

不建议将此模式用于生产用途,因为没有对编译器或生成的代码提供稳定性/兼容性保证。需要您自担风险使用它!

Transport.serviceCall(Transport.java:196) 在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688) 在 java.security.AccessController.doPrivileged(Native Method) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run (TCPTransport.java:687) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread。 run(Thread.java:748) 原因:java.util.NoSuchElementException:集合不包含与谓词匹配的元素。在 androidx.compose.plugins.kotlin.compiler.lower。

任务:app:javaPreCompileDebug

FAILURE:构建失败并出现异常。

  • 出了什么问题:任务':app:compileDebugKotlin'执行失败。

    内部编译器错误。有关详细信息,请参阅日志

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • 在https://help.gradle.org获得更多帮助

15 秒内构建失败 12 个可操作的任务:12 个已执行

有人可以帮我解决这个问题吗?

4

3 回答 3

5

在你的模块build.gradle文件中,确保你的android闭包中有这个:

  buildFeatures {
    compose true
  }

  composeOptions {
    kotlinCompilerVersion "1.3.61-dev-withExperimentalGoogleExtensions-20200129"
    kotlinCompilerExtensionVersion "0.1.0-dev04"
  }

我的猜测是你错过了composeOptions.

于 2020-02-11T23:15:15.573 回答
3

DrawImage()是的一部分androidx.ui:ui-foundation

打开build.gradle (Module: app)文件并将以下行添加到依赖项列表中:

dependencies {
    ...
    implementation 'androidx.ui:ui-foundation:0.1.0-dev03'
}

我建议遵循Jetpack Compose Basics - Codelab,这是 Google 提供的更全面的教程。

于 2020-03-07T17:34:05.793 回答
2

您可以在此处composeOptions查看正确构建的最新版本。

但请记住,不同版本的库 API 可能会有很大差异,最好看一下官方示例来检查 Compose 库的使用。

不要忘记将存储库切换到与库的最新版本相对应的正确分支(例如,在回答时它是dev05分支)。

于 2020-02-28T14:42:57.510 回答