代码之家  ›  专栏  ›  技术社区  ›  Ionel Lupu

找不到runtime.jar(android.arch.lifecycle:runtime:1.0.0)

  •  38
  • Ionel Lupu  · 技术社区  · 7 年前

    在我跑步之后 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安装中说出来。

    科尔多瓦版本: 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
    

    而且,我没有 cordova-android 文件夹位于 C:\Users\%USER%\.cordova\lib\npm_cache (我不知道这是否有帮助。我看到人们谈论这个文件夹)

    这里有什么问题?那个网址是从哪里来的?我怎样才能改变它,用什么来改变它?

    如果我不能轻松解决这个问题,还有最后一步要做:删除并重新安装所有内容。

    谢谢您!

    9 回复  |  直到 6 年前
        1
  •  19
  •   Moritz    7 年前

    一个快速的临时解决方案是将GoogleMavenrepo包含在顶级的Gradle文件中。

    allprojects {
      repositories {
          mavenLocal()
          maven { url 'https://maven.google.com' } // <-- add this!
          jcenter()
    
        2
  •  13
  •   Computer's Guy    7 年前

    为了我 AIT MANSOUR Moritz 答案不起作用,因为我有其他需要的依赖性 jcenter() jitpack ,另外,对于 react-native 你需要 node_modules .

    所以,我的解决方案 本地响应

    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()
        }
    }
    
        3
  •  6
  •   Ionel Lupu    7 年前

    我解决了这个问题(至少对我来说)。

    似乎 jcenter 为项目提供库时遇到一些问题(可能是临时的)。正如人们在这里建议的,您可以通过从Maven获取这些库来解决这个问题。

    转到build.gradle文件(对于爱奥尼亚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文件中。

        4
  •  4
  •   AIT MANSOUR Mohamed    7 年前

    今天早上我也遇到了同样的问题:

        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"
        }
    }
    

    现在项目建设成功了! 祝你好运!

        5
  •  4
  •   Sidharth Taneja    7 年前

    在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"
            }
        }
    }
    
        6
  •  1
  •   JonnyH    7 年前

    看起来问题是pom列在jcenter上,但是jar丢失了。

    https://jcenter.bintray.com/android/arch/lifecycle/runtime/1.0.0/

    如果元数据存在于repo中,但缺少项目,则Gradle将失败。

    https://github.com/gradle/gradle/issues/1120

    @莫里茨的解决方案应该先去maven.google.com。

        7
  •  1
  •   Maraj Hussain    7 年前

    这对我来说是可行的,只要遵循这两个步骤

    步骤1: 在项目中 建筑.gradle 文件只替换下面的代码

     allprojects {
          repositories {
              mavenLocal()
              maven { url 'https://maven.google.com' }
              jcenter()
    //        google()
        }
    }
    

    只是评论一下 谷歌( 如果存在于项目渐变文件中。

    第2步: 在文件中 Gradle-Wrapper.properties级 降级 分发URL 我刚刚降级了。

     distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
    
        8
  •  1
  •   jcesarmobile    6 年前

    的新版本 cordova-android (7.1.1)已经发布,解决了这个问题。

    所以移除当前的Android平台

    cordova platform rm android
    

    并添加新平台

    cordova platform add android@7.1.1
    
        9
  •  0
  •   ati    7 年前

    我删除了Android平台,然后再次添加: 要删除:

    Cordova平台RM Android

    要添加:

    科多瓦平台添加Android

    现在一切正常 注意:这次Android的这个版本没有正确安装(今天之前安装了!)

    Cordova平台添加Android@6.1.0