为啥这个旧的依赖会使我的 gradle 崩溃?

Posted

技术标签:

【中文标题】为啥这个旧的依赖会使我的 gradle 崩溃?【英文标题】:Why does this old dependency crashes my gradle?为什么这个旧的依赖会使我的 gradle 崩溃? 【发布时间】:2022-01-11 22:51:34 【问题描述】:

很久以前,我安装了一个软件包,它可以为我提供 android 设备上键盘的高度。最终这个包没有很好地满足我的目的,所以我把它卸载了。 几天前,我尝试构建我的应用程序,但出现以下错误:

Build file 'C:\Users\odedo\Documents\GitHub\tripper\app\platforms\android\app\build.gradle' line: 598
A problem occurred configuring project ':app'.
Could not GET 'https://dl.bintray.com/crysis21/Android/com/hold1/keyboardheightprovider/0.0.9/keyboardheightprovider-0.0.9.pom'. Received status code 403 from server: Forbidden

Command gradlew.bat failed with exit code 1

显然该包不再可用,我应该将此依赖项添加到我的代码中:

implementation 'ro.holdone:keyboardHeightProvider:1.0.3'

我的问题是:

    我应该在哪里添加这一行???我找不到这个简单动作的任何明确说明...... 为什么我仍然得到这个错误?我很久以前删除了这个包!我清理了我的平台,但在我的项目中找不到任何痕迹。我该如何摆脱它?

这里是 NPM:https://github.com/Crysis21/KeyboardHeightProvider 这是关于堆栈溢出的相同问题,但根本没有帮助:implementation 'com.hold1:keyboardheightprovider:0.0.9'

我迫切需要一个解决方案...请帮助

【问题讨论】:

你怎么知道你必须将该行添加到你的项目中?介意分享这样的消息吗? 这是包所有者所说的(也回答了打开的问题):github.com/Crysis21/KeyboardHeightProvider 【参考方案1】:

我在上面的评论中留下了一个问题供您澄清,但通常会将依赖项添加到 build.gradle 文件中;在项目级别或应用级别。

我假设您需要在应用程序级别的 Gradle 文件中添加此依赖项,因为它更常见,因此请查找 build.gradle 文件的 dependencies 部分(通常在底部)并将其添加为比如:

android 
   ...

dependencies 
   ...
   implementation 'ro.holdone:keyboardHeightProvider:1.0.3'

更新: 作为替代方案,我建议您直接远离帮助您完成或查找 Android 已经提供的东西的 3rd 方库。我认为您可以通过两种主要方式做到这一点:

    您可以实现GlobalLayoutListener 来计算应用程序布局的 大小,并从中推断出软键盘占用的总大小。 This answer from a different question 解释了这个过程。

    第二种确定键盘尺寸的方法是mentioned in the link you shared above,它是利用来自androidx 的Android 的WindowInsets API 来获得所需的精确测量值。我相信这个解决方案可能只适用于更高的Android版本,所以请明智地选择你的武器!

【讨论】:

你是 app.Gradle 吗?我没有找到任何 Gradle.Build。我试过了,但后来我得到了这个新的错误:FAILURE: Build failed with an exception。 * 出了什么问题:在根项目“tripper”中找不到任务“assembleDebug”。 * 尝试:运行 gradlew 任务以获取可用任务列表。使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。 * 在help.gradle.org 获得更多帮助在 4 秒内构建失败命令 gradlew.bat 失败,退出代码为 1 为什么我还要这样做?我删除了 NPM 啊,我明白了(两个 cmets)。好吧,我建议你直接离开这个库,因为 Android 至少有两种不同的方式来查找你正在寻找的信息。我将更新我的答案以展示一对夫妇。 我不明白,“离开这个图书馆”是什么意思?我怎么做?我早就卸载了 我在上面更新了我的答案。但总的来说,我的意思是你可以考虑以不同的方式获得你想要的东西。 让我们continue this discussion in chat。

以上是关于为啥这个旧的依赖会使我的 gradle 崩溃?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 unwind segue 会使我的应用程序崩溃?

为啥 __inbyte 会使我的软件崩溃?

为啥 ntdll.dll 会使我的 c++ 可执行文件崩溃?

为啥大型本地数组会使我的程序崩溃,而全局数组却不会? [复制]

为啥用 numpy 计算 2×2 矩阵的特征向量会使我的 Python 会话崩溃?

为啥这个 angularjs ui-router 代码会使我的浏览器崩溃?