gpt4 book ai didi

android - NoClassDefFoundError 在带有 Gradle 的 Android 上使用 Jackson 2.2.x

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:40 24 4
gpt4 key购买 nike

对于我的 Android 项目,我使用 Jackson 2.2.x 设置了 Gradle如下:

// build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'

repositories {
mavenCentral()
}

android {
compileSdkVersion 18
buildToolsVersion "18.1.0"

defaultConfig {
minSdkVersion 8
targetSdkVersion 18
}
}

dependencies {
compile 'com.android.support:appcompat-v7:18.0.0'
compile 'com.android.support:support-v4:18.0.0'
compile 'com.google.android.gms:play-services:3.1.36'
compile 'com.fasterxml.jackson.core:jackson-databind:2.2.+'
compile 'com.fasterxml.jackson.core:jackson-core:2.2.+'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.+'
}

我只是在这里使用 ObjectMapper:

import com.fasterxml.jackson.databind.ObjectMapper;

// ...

ObjectMapper objectMapper = new ObjectMapper();
try {
Content content = objectMapper.readValue(inputStream, Content.class);
} catch (IOException e) {
e.printStackTrace();
}

当我运行 gradle installDebug 并启动它崩溃的应用程序的相关部分时:

java.lang.NoClassDefFoundError: com.fasterxml.jackson.databind.ObjectMapper


想法:

  • 我注意到在错误消息中提到了 com.fasterxml.jackson...com.fasterxml.jackson.core 是在 build 中定义的。渐变。是否存在导致问题的不匹配?
  • 我暂时将 dependencies block 移动到 android block 中,因为我 found other build.gradle configurations以这种方式构建。然而,这似乎没有什么区别。

最佳答案

Gradle 和 Android 并不总能很好地处理依赖项(目前)。运行

 gradle clean

似乎为我解决了大部分问题。

注意:如果这不起作用,您可以运行

dexdump classes.dex | grep 'Class descriptor'

在 APK 中的 classes.dex 文件中。这将检查该类是否包含在 classes.dex 文件中。 (有时,如果您想仔细检查发生了什么,这很有用)。

关于android - NoClassDefFoundError 在带有 Gradle 的 Android 上使用 Jackson 2.2.x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19245855/

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