gpt4 book ai didi

android - 将 AS 项目迁移到 IDEA 时,无法将 com.android.build.gradle.internal.model.ApiVersionImpl 转换为 java.lang.Integer

转载 作者:太空宇宙 更新时间:2023-11-03 13:23:01 24 4
gpt4 key购买 nike

我需要从 Android Studio 迁移到 IntelliJ IDEA,因为我需要用 Java 完成一些其他非 Android 工作。我从 git 克隆了我的项目并将其导入到 IDEA 中;但是,我在这个过程中遇到了 Gradle 的错误。我进行了搜索,但找不到可以解决我的错误的答案。

这是事件日志

03:39:42 PM All files are up-to-date
03:39:42 PM ClassCastException: com.android.build.gradle.internal.model.ApiVersionImpl cannot be cast to java.lang.Integer: com.android.build.gradle.internal.model.ApiVersionImpl cannot be cast to java.lang.Integer

settings.gradle(myproject是SO的例子,想省略实际名称)

include ':myproject'

根目录下的build.gradle(例如/myproject/build.gradle)

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

allprojects {
repositories {
mavenCentral()
}
}

和另一个build.gradle(例如/myproject/myproject/build.gradle)

apply plugin: 'android'

android {
compileSdkVersion 19
buildToolsVersion '20'
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName '1.0'
}

buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
versionNameSuffix "-alpha"
}
}
productFlavors {
}

packagingOptions{
exclude 'META-INF/DEPENDENCIES.text'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
compile 'commons-validator:commons-validator:1.4.0'
}

我认为它与 Gradle 版本或 Studio 和 IDEA 之间的不兼容性有关,但我不确定。非常感谢您的回答。谢谢。

最佳答案

我认为这是因为您的 Gradle 项目对于 IntelliJ IDEA 附带的 Android 插件版本来说太新了。

有几个可能的解决方法:

您可以尝试在构建文件中降级 Android Gradle 插件的版本,直到找到可以使用的版本。如果您退回太远以至于它的其他部分不兼容,这将遇到问题。为此,减少行中的版本号:

   classpath 'com.android.tools.build:gradle:0.12.+'

但是,如果您这样做,请注意此构建文件将与现代版本的 Android Studio 不兼容。目前没有很好的解决方法。

另一种方法是尝试 IntelliJ 14 EAP,它可能会有更高版本的插件。请注意,IntelliJ 14 仍处于其开发周期的非常活跃的阶段,并且可能存在错误。使用风险自负。 http://confluence.jetbrains.com/display/IDEADEV/IDEA+14+EAP

冗长的解释:

工作中有许多不同的部分:

  1. 你的构建文件
  2. Gradle 的 Android 插件
  3. 用于 IntelliJ 的 Android 插件,由以下人员使用:
  4. Android Studio,以及
  5. IntelliJ IDEA

#3 中的插件是适用于 Android Studio 和 IntelliJ 的相同插件,但问题在于它的发展非常迅速,而且 Android Studio 的发布计划要快得多,而且每个版本都附带最新的代码。 IntelliJ IDEA 的发布频率较低,老实说,我不完全确定它附带的是什么 Android 插件;我没有看过他们的分支策略。

Gradle 的 Android 插件也在快速发展。通常,这与新版本的 Android Studio 同步;为了支持我们在 Android Studio 中需要的新功能,用户需要更新的最低版本的 Gradle 插件,反之亦然——这就是过去经常强制迁移插件版本的原因。

所以发生的事情是您的构建文件需要最新版本的 Android Gradle 插件,这需要最新版本的 IntelliJ Android 插件,它在 Studio 中提供,但不是 IJ 13 的当前版本。

事情正在稳定下来,所以我们希望这会在未来有所改善。特别是,Android Gradle 插件的 1.0 版将跨平台工作,并将在很长一段时间内与所有产品的 future 版本兼容,如果不是永远的话。

关于android - 将 AS 项目迁移到 IDEA 时,无法将 com.android.build.gradle.internal.model.ApiVersionImpl 转换为 java.lang.Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24679894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com