我的 gradle 构建成功完成,但我得到:
WARNING: Unsupported Kotlin plugin version.
The `embedded-kotlin` and `kotlin-dsl` plugins rely on features of Kotlin `1.5.31` that
might work differently than in the requested version `1.6.10`.
Run Code Online (Sandbox Code Playgroud)
我的所有 build.gradle.kts 脚本都引用使用版本 1.5.31。我的项目与版本 1.6.10 的唯一关联是 Android Studio 添加了 Kotlin 版本 1.6.10 插件。如果我尝试禁用该插件,我会收到一条消息,表明其他几个插件将被禁用。如果我接受这一点,android studio 就会崩溃并且不会再次启动。即使你重新安装android studio,它也不会再次启动。解决方案是找到名为“disabled-plugins.txt”的文件并删除该文件。它位于您的 AppData 文件夹和 JetBrains 子目录中。事实证明,是一个或多个其他禁用的插件阻止了 Android Studio 再次启动。
我的问题是如何解决这个版本不匹配的问题。由于上述原因,我无法从 Android Studio 中删除该插件。如果我尝试将我的项目更新为使用版本 1.6.10,我实际上会得到 100 个未解决的依赖项。从固执己见的调查看来,1.6.10 对于一般使用来说仍然存在太多问题。
顺便说一下,当我查看项目的 gradle 窗口时,我可以看到依赖项来自哪里。通常,当我查看 gradle 窗口时,我只会看到子项目文件夹,我可以深入了解更多信息,但对于这个项目,它有一个额外的文件夹名称依赖项。我不知道他们是如何进入我的项目的。但当我查看它们的版本号时,发现 1.6.10 不匹配。
所以,我想我明白为什么警告消息是有效的,我不知道我需要做什么来纠正这种情况。目前,我只是忽略该警告,到目前为止,我没有发现这样做有任何问题。但这意味着我正在继续,而不了解这里发生了什么!有时这是可以的,有时这是一个错误的判断错误消息本身似乎是颠倒的。我认为 1.6.10 是嵌入式 kotlin 和 kotlin-dsl,因为它是一个 android studio 插件,但错误消息似乎以相反的方式说明了这一点。所以无论如何,如果有人能够澄清正在发生的事情,以及我对这个问题的错误思考,我将不胜感激。
我收到 android logcat 消息“资源无法调用关闭”。我已经追踪到该消息的生成位置。这是代码:
Properties defaultProperties = new Properties();
URL propURL = Util.class.getClassLoader().getResource(DEFAULT_PROPERTIES_FILE);
if (propURL != null)
{
InputStream is = null;
try
{
// Load properties from URL.
is = propURL.openConnection().getInputStream();
defaultProperties.load(is);
is.close();
}
catch (Exception ex)
{
Run Code Online (Sandbox Code Playgroud)
该消息是在调用“defaultProperties.load(is)”时生成的。
我在该行上放置了一个断点,当我跨过该行时,就会生成警告消息。我不是代码的作者,但该行至少执行两次,并且是在生成警告时调用该行的第二次。我只是不明白在任何情况下如何在该行上生成无法关闭的资源。我无法解释如何或为何会在那里生成该错误消息。有任何想法吗?