错误:无法初始化类 com.android.sdklib.repositoryv2.AndroidSdkHandler

Posted

技术标签:

【中文标题】错误:无法初始化类 com.android.sdklib.repositoryv2.AndroidSdkHandler【英文标题】:Error:Could not initialize class com.android.sdklib.repositoryv2.AndroidSdkHandler 【发布时间】:2016-09-27 13:47:08 【问题描述】:

我想在启动时使用 android Studio 构建这个 project,但出现错误。 Stacktrace 是here

【问题讨论】:

请修正您的语法,显示您的项目设置等 @Eldelshell,您想查看哪些具体配置? 请不要链接到外部资源,直接在问题中包含所有相关信息。 【参考方案1】:

当您的系统中安装了多个 JDK 时会出现此问题,我遇到的问题与我错误地安装了 oracle-jdk-9 并且 Android studio 需要 oracle-jdk-8 一样

如果您使用的是 Ubuntu,您可以从 this question 安装 jdk-8。

所以,进行如下更改:

ctrl+shift+alt+s 将打开项目结构,也可以从

文件 -> 项目结构

然后更改您可能已安装 JDK 8 的 JDK 位置

【讨论】:

【参考方案2】:

这是因为您在 build.gradle 根项目中的类路径构建工具已被弃用,对于新的 android studio 3.2.0 进行这样的更新

buildscript 
dependencies 
    classpath 'com.android.tools.build:gradle:3.2.0-alpha14'

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

【讨论】:

【参考方案3】:

我遇到了同样的问题。我已经安装了 Java 8 和 Java 9。 我将 JAVA_HOME 设置为 Java 8,但 Gradle 使用的是 Java 9。

我将 File->Project Structure 中的 JDK 更改为 Java 8 并且它工作正常。

【讨论】:

【参考方案4】:

JAVA 9 已将 JAVA_HOME 强行接管给自己。

安装java9后你会发现

# java -version
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)

所以我们不要卸载 java 9,而是将 JAVA_HOME 指向 java 8

首先找出嵌入 JRE 的 Android Studio 位置

最后在 ~./bash_profile 中添加一个条目

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

# source ~/.bash_profile
# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

来源 http://scalebean.blogspot.com/2018/01/fix-gradle-could-not-initialize-class.html

【讨论】:

【参考方案5】:

将 Android Studio 中的 JDK 更改为指向 8 对我来说不起作用。我卸载了 Java 9,这解决了这个问题。

【讨论】:

【参考方案6】:

一个简单的解决方案:

React-Native 与 Java 9 或 Java 10 不兼容

只需降级到 Java 8 即可解决此问题

【讨论】:

一直在尝试所有其他解决方案,试图在 Java 10 上构建 react ...您的简单解决方案为我节省了更多的工作时间,谢谢! 好的,但是怎么做呢?不完整的答案根本没有帮助【参考方案7】:

如果你在 Ubuntu 中有多个 Java,你可以

sudo update-alternatives --config java
sudo update-alternatives --config javac

选择 Android 和 Gradle 需要的 Java 8。

【讨论】:

【参考方案8】:

如果有人对 IntelliJ IDEA 有疑问,请转到 File -> Project Structure(或按 Ctrl + Alt + Shift + S) 并删除所有 JDK 9 条目。 JDK 在Platform Settings -> SDKs 下标记,在一小杯蓝色咖啡后面有一个文件夹。

我尝试将正确的路径添加到 JDK 1.8,但无论出于何种原因,IntelliJ IDEA 都会默认返回到 JDK 9。不幸的是,我需要 JDK 9 用于其他项目,所以卸载它太麻烦了。如果您需要将 JDK 9 用于另一个项目(就像我一样),您仍然可以通过相同的菜单添加 JDK 9 条目,然后在需要时再次将其删除。

【讨论】:

【参考方案9】:

转到 build.gradle, 并确保您的 gradle 依赖项 是最新的。 对于 Android Studio 4.2.2 依赖项 类路径“com.android.tools.build:gradle:4.2.2” ......... .........

【讨论】:

【参考方案10】:

如果问题仍然存在,只需将 gradle 导入 Android Studio 并在 Android Studio 中构建文件。

Android Studio 会自动处理 gradle 和 sdk 问题。 成功构建后,您还可以尝试通过react-native run-android 运行应用程序 命令提示符。希望这可以帮助。 这是解决此问题的唯一修复程序。 我尝试了以上所有答案,但问题仍然存在

【讨论】:

OP 似乎已经在 Android Studio 中构建项目了。

以上是关于错误:无法初始化类 com.android.sdklib.repositoryv2.AndroidSdkHandler的主要内容,如果未能解决你的问题,请参考以下文章

Gradle 错误:无法初始化类 org.codehaus.groovy.runtime.InvokerHelper

Weblogic 错误 - 无法初始化类 weblogic.jndi.Environment

错误:无法初始化类 ru.yandex.clickhouse.ClickHouseUtil

错误:无法初始化类 com.android.sdklib.repositoryv2.AndroidSdkHandler

CoreData:错误:无法在 NSManagedObject 类“BNRItem”上调用指定的初始化程序

CoreData:错误:无法在 NSManagedObject 类“Collect”上调用指定的初始化程序