找不到 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'

对我来说是两个地方:buildscriptallprojects。最后,您的 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?

Android Studio 3.0以上找不到Android Device Monitor的解决/替代方法

在 android 中找不到 FirebaseInitProvider