【问题标题】:Error: Could not initialize class com.android.sdklib.repository.AndroidSdkHandler错误:无法初始化类 com.android.sdklib.repository.AndroidSdkHandler
【发布时间】:2017-10-24 18:14:40
【问题描述】:

我已经在 Windows 上设置了 react native 的环境。但是当我运行命令时

react-native run-android

我收到以下错误 -

* What went wrong:
A problem occurred configuring project ':app'.
> Failed to notify project evaluation listener.
   > Could not initialize class com.android.sdklib.repository.AndroidSdkHandler

我该如何解决这个问题?

【问题讨论】:

  • 您是否按照此处提供的所有安装步骤操作:facebook.github.io/react-native/docs/getting-started.html 并选择使用本机代码选项卡构建项目
  • 是的,差不多。但是我没有在 Android Studio 中安装一些组件。我现在正在安装它们。会看看这是否有效。谢谢。
  • @PaulSantosh 你有这个更新吗?
  • @Wayferer 我在某处读到安装 Java 8 会有所帮助。我现在安装了 Java 8,它显示了这个错误 - com.android.build.gradle.tasks.factory.AndroidJavaCompile.setDependencyCacheDir(Ljava/io/File;)V
  • 对我来说,这是通过从 JDK 1.9 切换回最新的 1.8 来解决的。

标签: android react-native react-native-android


【解决方案1】:

这是因为您在 build.gradle 根项目中的类路径构建工具已被弃用。像这样更新它

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.0'
    }
}

然后更新您的最小 sdk 和构建工具到最新并且没有问题了

【讨论】:

【解决方案2】:

我在 macOS 中运行以下命令时遇到此错误

./gradlew assembleRelease --stacktrace

并发布了确切的错误。 我通过将 $JAVA_HOME 环境变量设置为您的 JDK 安装解决了这个问题。就我而言,我在 Android Studio for macOS 中使用了捆绑的 JDK:

export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"

对于 Windows,只需将 JAVA_HOME 添加到指向您的用户或系统变量

"C://Program Files/Java/jdk_1.x_"

文件夹并尝试再次运行 react-native run-android。

【讨论】:

  • 巧妙修复,无需额外安装jdk!
  • mac 修复对我不起作用。有什么建议吗?使用 java 10
  • 为我工作。要在 Windows 上查找 java 位置,请在命令行中使用:c:\> for %i in (java.exe) do @echo。 %~$PATH:i
  • 对我不起作用;我在 Windows 10 android studio 4.2 C15
  • @MiguelSilva 这对我也不起作用。 Windows 10、Android Studio 4.2.1
【解决方案3】:

这将按照以下步骤解决问题:

1) 更改项目级别 Gradle 版本build.gradle

早期版本名称如

classpath 'com.android.tools.build:gradle:2.3.2'

使用新版本或您拥有的最新版本进行更改

classpath 'com.android.tools.build:gradle:4.2.1'

2) 从 \gradle\wrapper

更改 gradle-wrapper.properties

早期版本名称如

distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip

使用新版本或您拥有的最新版本进行更改

distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip

【讨论】:

  • 在 build.gradle 中更改 gradle 版本只对我有用。应该是 gradle2 的问题
  • 这真的解决了我的问题。
【解决方案4】:

这是 JDK 9 版本的问题。Android 工具尚不支持使用 Java 9 正式构建。而且有这样的问题。

降级到 Java 版本 8 将解决此问题。

【讨论】:

  • 我已经在使用 Java 8 并且仍然收到问题 :(
【解决方案5】:

在 Ubuntu 18.04 上,这解决了问题。

  1. 运行此命令

    sudo apt-get install openjdk-8-jdk

  2. 将此添加到~/.bashrc

    export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

  3. 重新启动终端或 IDE。

【讨论】:

    【解决方案6】:

    通过在 .bash_profile 中添加以下内容来修复错误

     export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
    export PATH=$PATH:$JAVA_HOME/bin
    export ANDROID_HOME=/Users/saif-ams/MyFiles/applications/androidsdk
    export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
    

    【讨论】:

      【解决方案7】:

      可能的原因是 Gradle 的版本和 JDK 的版本不匹配。

      一开始,我电脑的gradle版本是4.10.1,JDK是12。

      我的解决办法是:

      从oracle官网下载JDK 1.8,用JDK8设置JAVA_HOME就搞定了

      【讨论】:

      • 也许这也是 gradle 的 bug 或者 JDK12 的 bug。哈哈!!
      【解决方案8】:

      将 jcenter() 替换为 谷歌()

      mavenCentral()

      在项目级 gradle 文件中

      【讨论】:

        【解决方案9】:

        根据日志,将google()仓库添加到app目录下的build.gradle文件中,如下图:

        allprojects {
            repositories {
                mavenCentral()
                google()
                jcenter()
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-05-28
          • 1970-01-01
          • 2023-03-20
          • 1970-01-01
          • 1970-01-01
          • 2016-09-27
          相关资源
          最近更新 更多