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

为什么有些项目导入androidx。活动ktx与否?

湛功
2023-03-14

我启动了一个新项目,导入了以前的依赖项设置,并尝试在活动中使用byviewModel。但是我无法获得byviewModel参考,所以我尝试去外部库。上一个项目有androidx。活动:活动ktx:1.0.0,尽管我没有添加androidx。活动:活动ktx:1.0.0。你可以在https://github.com/android/architecture-samples .

但是,当我尝试启动一个新项目并从以前的项目导入设置时,我无法获得androidx。我不理解以前的项目或谷歌导入androidx的示例。活动:活动ktx:1.0.0,我的新项目不导入它。尽管渐变设置和渐变版本相同。


共有2个答案

包丁雨
2023-03-14
匿名用户

我不知道如何将以前的依赖项设置从其他项目导入新项目。它是Android Studio的功能吗?

但是我认为打印整个依赖关系树将解决您的困惑,因为一些依赖关系可能隐含在直接声明的依赖关系中。

您可以打开终端并执行/gradlew dependencies打印整个项目的所有依赖项。

看见https://docs.gradle.org/current/userguide/viewing_debugging_dependencies.html了解更多详细信息。

我试着找到了这个,

  • 回购:https://github.com/android/architecture-samples
debugRuntimeClasspath - Runtime classpath of compilation 'debug' (target  (androidJvm)).
+--- androidx.compose.ui:ui-tooling:1.1.1
|    +--- androidx.annotation:annotation:1.1.0 -> 1.3.
|    +--- androidx.compose.runtime:runtime:1.1.1
|    |
|    |
...
|    \--- androidx.activity:activity-compose:1.3.0 -> 1.4.0
|         +--- androidx.compose.runtime:runtime:1.0.1 -> 1.1.1 (*)
|         +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.1.1 (*)
|         +--- androidx.activity:activity-ktx:1.4.0
...

它告诉我们,androidx.activity:activity ktx:1.4.0由androidx导入。activity:activity compose:1.3.0和androidx.activity:activity compose:1.3.0由androidx.compose导入。ui:ui工具:1.1.1。

您可以在应用程序的build.gradle中找到androidx.compose.ui:用户界面-tools ing: 1.1.1声明。链接

然后,您可以使用此链接后的api找到active-composeimportactive-ktx

关于api在构建中的意义。gradle,请参阅此。

因此,项目架构示例可以使用viewModels(),而无需在build.gradle中实现依赖关系。

顾高翰
2023-03-14

Android KTX是一组静态编程语言扩展,可帮助您编写简洁且惯用的代码。

by viewModel扩展在默认情况下不适用于新的android项目,应该使用Android KTX添加,特别是androidx.fragment: fraenting-ktx:'version'

您可能会找到其他有用的扩展,您想添加到项目中,如androidx.activity: active-ktx:androidx.lifecycle: liefycle-livedata-ktx:等。每个人都添加了一些特殊的“语法糖”,所以不要犹豫,了解它们的可能性。

请参阅参考Android KTX

 类似资料:
  • 问题内容: 我正在尝试“将现有项目导入工作区”。作为“根目录”,我选择所有.java(和.class)文件所在的目录。Eclipse告诉我“未找到要导入的项目”。为什么? 问题答案: Eclipse正在寻找eclipse项目,这意味着它正在根目录(和)中搜索特定于Eclipse的文件。您或者给了Eclipse错误的目录(如果要导入一个eclipse项目),或者您实际上想从现有源创建一个新项目(->

  • 我创建了一个android项目(项目A),并在其中导入了另一个项目(项目B),其中包含: - 现在我想从项目A调用位于项目B内部的活动。 我用过: 但我明白了 类不成立异常 如何解决这个问题? 使现代化 我发现我需要使用以下方法将项目B作为依赖项添加到项目a中: 项目结构/依赖关系/ 当我试图构建我得到这个错误: 错误:无法确定任务的依赖项:app: compileDebugJavaBackJav

  • 问题内容: 看一下这个文件: 它不编译;我需要。现在考虑这一点: 完全一样,只是用代替,所以不应该编译,对吧?错误。 好的,所以不必导入是众所周知的,但是 为什么 呢?“明显”的答案是因为它的使用频率远高于,但是不应该“隐式导入”吗?原始包装器类,例如和呢?用 远远 往往比和,但我必须进口,并不需要进口。 什么是落后不需要对进口的原因,,,和其他几个班? 问题答案: 明显的答案是因为它的使用频率远

  • 当我尝试导入现有的maven项目时,Eclipse有一个奇怪的行为,它是一个多模块的JEE maven项目,包含父模块和子模块。结构svn如下所示: 父级 当我将项目导入Eclipse时,它会自动在“父”项目的同一目录中创建一个“共享库EAR”。导入后看起来像这样: 共享图书馆EAR 它对工作区中的每个“jar”maven项目都这样做。这很正常吗?我使用Eclipse氧气。2和Eclipse Ne

  • 我正在读关于一个房间图书馆的Android。我看到他们把软件包改成了。我不明白这一点。有人能解释一下吗? 在而不是在中打包新的支持库有什么需要? 现有项目中的用例和影响因素。