当前位置: 首页 > 面试题库 >

NoClassDefFoundError在具有Gradle的Android上使用Jackson 2.2.x

宰父冠玉
2023-03-14
问题内容

对于我的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.gradle。是否存在引起问题的不匹配?
  • 由于我发现以这种方式构造的其他配置,因此我将dependencies块暂时移入了该android块。但是,似乎没有什么区别。build.gradle

问题答案:

Gradle和Android并不总是与依赖项相处得很好。跑步

 gradle clean

似乎为我解决了大多数问题。

注意: 如果没有用,您可以执行

dexdump classes.dex | grep 'Class descriptor'

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



 类似资料:
  • 我已经花了几个小时试图得到一个库来配合我在Android Studio中的项目,但我就是想不通。 我甚至还加了 到我的大楼去。格雷德尔。如果没有这一点,应用程序甚至无法编译。 有些东西告诉我这不应该这么难--我忽略了什么? logcat:

  • 问题内容: 我正在使用gradle作为JavaFX插件。即使在 distribution /下 构建和运行可执行文件之后,一切都可以完美运行,但只有一类: 为了多种目的,我创建了以下对象: 在IDE中运行该程序没问题,一切正常。但是,如果我构建并尝试运行.exe文件,则会得到以下-StackTrace: 我真的不明白。怎么可能找不到这个类,而我所有其他的类却都找不到呢? 我的build.gradl

  • 我最近将我的构建环境升级到了Android studio 2.2,JDK 1.8(和jack一起),我正在使用gradle-2.14.1的gradle wrapper。我的构建/发布版本可以在任何android版本上正确编译和运行 致命异常:主进程:com.trail.android.debug,PID:21045 java.lang.NoClassDefFoundError:com.trail.

  • 问题内容: 我目前有一个总是返回的。我已经读到ADT可能有问题,但是我不确定,因此是我的问题。我已经从Android示例下的ActionBar示例中导入了 我已将ActionBarCompat项目标记为“项目”->“属性”下的库,但是仍然出现错误。 重申: 是否还有其他人遇到过类似的错误并可能找到了解决方案? 提前致谢。 问题答案: 最终改为使用ActionBarSherlock,并在“项目属性”

  • 对于我的Android项目,我用Jackson 2.2.x设置了Gradle,如下所示: 我只是在这里使用: null

  • 我有一个现有的Android项目,结构如下: 谢谢!