找不到 runtime.jar (android.arch.lifecycle:runtime:1.0.0)
Posted
技术标签:
【中文标题】找不到 runtime.jar (android.arch.lifecycle:runtime:1.0.0)【英文标题】:Could not find runtime.jar (android.arch.lifecycle:runtime:1.0.0) 【发布时间】:2018-11-06 20:50:32 【问题描述】:在我运行 ionic cordova build android
后,我收到此错误:
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all files for configuration ':debugCompileClasspath'.
> Could not find runtime.jar (android.arch.lifecycle:runtime:1.0.0).
Searched in the following locations:
https://jcenter.bintray.com/android/arch/lifecycle/runtime/1.0.0/runtime-1.0.0.jar
这是正确的。当我访问这个 URL https://jcenter.bintray.com/android/arch/lifecycle/runtime/1.0.0/runtime-1.0.0.jar
时,我得到一个 404 Not found error
作为 JSON。
我在该 URL 中没有看到任何 android/cordova 特定版本,因此我无法从我的 cordova 安装中说出它。
Cordova 版本:7.1.0
离子信息:
cli packages: (C:\Users\%User%\AppData\Roaming\npm\node_modules)
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:
cordova (Cordova CLI) : not installed // this is strange. I can run cordova in my terminal tho
local packages:
@ionic/app-scripts : 3.1.8
Cordova Platforms : android 6.4.0
Ionic Framework : ionic-angular 3.9.2
System:
Android SDK Tools : 26.1.1
Node : v8.4.0
npm : 5.3.0
OS : Windows 10
Environment Variables:
ANDROID_HOME : C:\Users\%User%\AppData\Local\Android\Sdk
Misc:
backend : pro
另外,我在C:\Users\%USER%\.cordova\lib\npm_cache
中没有任何cordova-android
文件夹(我不知道这是否有帮助。我看到人们在谈论这个文件夹)
这里有什么问题?该网址来自哪里?我怎样才能改变它,我能用什么改变它?
如果我不能轻易解决这个问题,还有最后一步:删除并重新安装所有内容。
谢谢!
【问题讨论】:
运行 react-native run-android 命令后,我在 React Native 上遇到了这个问题。 我可以看到很多人在同一天遇到完全相同的问题。可能是 CDN 服务器的临时问题? @boyd 是的,看起来有人决定破坏每个人的构建 你可以试试compileSdkVersion升级。 我给jcenter
的人发了消息。他们说那里没有.jar
文件。这只是一个.aar
文件。
【参考方案1】:
已经发布了一个新版本的cordova-android
(7.1.1) 来解决这个问题。
所以删除当前的android平台
cordova platform rm android
并添加新平台
cordova platform add android@7.1.1
【讨论】:
【参考方案2】:对我来说,AIT MANSOUR 和 Moritz 的答案不起作用,因为我还有其他需要 jcenter()
和 jitpack
的依赖项,此外,对于 react-native
,您需要 node_modules
。
所以,我对react-native
的解决方案是
allprojects
repositories
// this is for native modules I'm developing
mavenLocal()
// for modules depending on jitpack.io
maven url "https://jitpack.io"
// add this one
maven
url "https://maven.google.com"
maven
url "$rootDir/../node_modules/react-native/android"
// keep this at the end
jcenter()
【讨论】:
这是唯一适用于我的 react-native 解决方案。使用他们说的 npm 包,他们说的很容易。浪费了几个小时!谢谢八面体! 工作就像一种享受。通过像这样订购您的存储库,您实际上是首先从 Maven 中提取库,然后是您的本地 node_modules 目录,然后从 jcenter 中提取不在这两个目录中的任何内容。谢谢! 顺便说一句,这里是一个关于相同错误的热门 Github 问题的链接:github.com/zo0r/react-native-push-notification/issues/748【参考方案3】:我删除了android平台,然后再次添加: 删除:
cordova 平台 rm android
添加:
cordova平台添加android
现在一切正常 注意:这个版本的android这次没有正确安装(今天之前安装过!)
cordova平台添加android@6.1.0
【讨论】:
【参考方案4】:我解决了这个问题(至少对我来说)。
jcenter
似乎在为项目提供库时存在一些问题(可能是临时的)。正如人们在这里建议的那样,您可以通过从 maven 获取这些库来解决这个问题。
转到您的 build.gradle 文件(对于 ionic devs,它位于 /platforms/android)并在每行代码上方添加 jcenter()
这一行 maven url 'https://maven.google.com'
。
对我来说是两个地方:buildscript
和 allprojects
。最后,您的 build.gradle 文件的顶部应如下所示:
apply plugin: 'com.android.application'
buildscript
repositories
maven url "https://maven.google.com"
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:3.0.0'
allprojects
repositories
mavenLocal()
maven url 'https://maven.google.com'
jcenter()
它有什么作用?它只是将库提供程序(在本例中为 jcenter)更改为另一个,以便您的应用程序可以成功下载它们。那里的每一行都有一个带有后备功能的库提供程序。
我不知道为什么它一开始没有回退到 maven,因为回退提供程序在我的 build.gradle 文件中。
【讨论】:
这是一个临时修复,所以我们可以工作。也许明天jcenter
将可用。
我认为它没有“回退到 maven”的原因是它在 jcenter 中找到了一个列表,但没有找到所需的 .jar
文件。所以它在“那里”,但它需要的特定 .jar
文件不是,这与 jcenter 没有它的列表不同。根据 jcenter,他们只有这个库的 .aar
文件,而不是 .jar
。
在我的例子中, jcenter () 语句在 maven 之上,所以我的应用程序崩溃了。这个技巧解决了这个问题!【参考方案5】:
这对我来说很有效,只需遵循这两步
第 1 步: 在项目 build.gradle 文件中只需替换以下代码
allprojects
repositories
mavenLocal()
maven url 'https://maven.google.com'
jcenter()
// google()
如果您的项目 gradle 文件中存在 google(),只需注释掉即可。
步骤 2: 在文件 gradle-wrapper.properties 降级 distributionUrl 我刚刚降级下面。
distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
【讨论】:
我认为gradle-wrapper.properties
与此无关。【参考方案6】:
在android/build.gradle中,将代码改为-
allprojects
repositories
mavenLocal()
maven url 'https://maven.google.com'
jcenter()
maven
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
【讨论】:
在我的 React-Native 项目中试过这个。不工作。 可以分享你的项目吗? @JItendraRana 尝试在“node_modules”maven
列表之后将jcenter()
移动到列表底部。【参考方案7】:
问题似乎是在 jcenter 上列出了 pom,但缺少 jar。
https://jcenter.bintray.com/android/arch/lifecycle/runtime/1.0.0/
如果元数据存在于仓库中但工件丢失,则 Gradle 将失败
https://github.com/gradle/gradle/issues/1120
@Moritz 的修复应该通过首先访问 maven.google.com 来工作
【讨论】:
【参考方案8】:今天早上我遇到了同样的问题:
Error:Could not resolve all files for configuration ':app:debugAndroidTestRuntimeClasspath'.
找不到 runtime.jar (android.arch.lifecycle:runtime:1.0.0)。 在以下位置搜索: https://jcenter.bintray.com/android/arch/lifecycle/runtime/1.0.0/runtime-1.0.0.j
我是这样解决的: 在项目存储库上,我编辑 build.gradle,我评论了 jcenter() :
repositories
// jcenter()
maven
url "https://maven.google.com"
现在项目正在成功构建! 祝你好运!
【讨论】:
在哪个gradle app/build.gradle还是build.gradle?? 无需注释掉,因为您可能需要仅在jcenter()
上可用的库。你可以把它移到maven
下面。但是,如果您将其注释掉并且它有效,这可能意味着您可以完全删除 jcenter()
,因为您可能不依赖该存储库中的任何库。【参考方案9】:
一个快速的临时解决方法是将 google maven repo 包含在您的*** gradle 文件中。
allprojects
repositories
mavenLocal()
maven url 'https://maven.google.com' // <-- add this!
jcenter()
【讨论】:
是的,这是一个很好的解决方案,而且它的逻辑。 Bintray的lib有问题,所以从另一台主机下载。谢谢 jcenter.bintray.com/android/arch/lifecycle/runtime/1.0.0/… 这是它正在寻找的存储库。任何替代解决方案。? @JItendraRana:确保编辑 your-react-native-project/android/build.gradle 并在 jcenter 之前和 allprojects 组中添加新行。 尝试此操作后,gradle 无法找到以下文件https://jcenter.bintray.com/com/android/tools/build/aapt2-proto/0.1.0/aapt2-proto-0.1.0.jar
- react-native-firebase
的某些依赖项
我正在做一个 react-native 项目,现在我可以构建项目但无法启动应用程序,它提示“不幸的是,应用程序已停止”以上是关于找不到 runtime.jar (android.arch.lifecycle:runtime:1.0.0)的主要内容,如果未能解决你的问题,请参考以下文章
在模块 jetified-firebase-jobdispatcher-0.6.0-runtime.jar 中找到 React Native Android Duplicate class com.g
59.解决: Android Studio 3.+ 找不到Android Device Monitor工具
Android 设备上的“找不到网页”“找不到文件:///android_asset/html-nl/index.html”错误
为啥Android找不到android.graphics.OpenGLContext?