如何解决Android中的java.lang.NoClassDefFoundError问题?

3

我将import.io的jar包导入到我的安卓项目中,尝试运行示例代码,但出现了以下错误:

FATAL EXCEPTION: main
    java.lang.NoClassDefFoundError: com.importio.api.clientlite.json.JacksonJsonImplementation$1
            at com.importio.api.clientlite.json.JacksonJsonImplementation.<init>(JacksonJsonImplementation.java:17)
            at com.importio.api.clientlite.ImportIO.connect(ImportIO.java:235)
            at com.gomel.data.ImportIOTest.showandgetData(ImportIOTest.java:33)
            at com.gomel.activities.DetailedArticleActivity$1.onClick(DetailedArticleActivity.java:40)
            at android.view.View.performClick(View.java:4247)
            at android.view.View$PerformClick.run(View.java:17733)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5289)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
            at dalvik.system.NativeStart.main(Native Method)

我进行了谷歌搜索并确定了jackson库存在问题,我已经添加了它,但是没有任何改变。这里有很多不同的解决方案,但在我的情况下无法解决它。请给我一些建议好吗?
我使用带有Android SDK工具v22.3的Android Studio。我还尝试在eclipse中运行此项目(显然是使用jar包),但出现了相同的错误。
更新:
我的build.gradle文件。
apply plugin: 'android'

android {
    compileSdkVersion 18
    buildToolsVersion '19.0.1'

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 18
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    } }

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile files('lib/com.importio.api.clientlite-1.0.2.jar')
    compile files('lib/jackson-core-asl-1.9.12.jar') }

在此输入图片描述

我像添加文件依赖项一样添加了它,认为这是正确的选项。当我不使用这些方法时,也没有编译错误。当然,这些JAR包都位于lib文件夹中。


你能分享一下你的项目设置以及如何将jar包导入到你的模块中吗?你使用Gradle吗?如果是的话,请分享gradle构建文件。 - Assaf Gamliel
@AssafG。是的,我使用Gradle,并且我刚刚添加了一个带有设置的图片。你知道出了什么问题吗? - pavelartlover
@Ashish似乎已经解决了你的问题,所以我没有理由再多说什么。祝你好运。 - Assaf Gamliel
@AssafG。不好意思,我的问题还没有解决。 - pavelartlover
@AssafG。我已经尝试过了,但没有任何变化。我正在考虑创建一个新项目来测试jar导入... - pavelartlover
显示剩余3条评论
3个回答

2

缺少必要的jar包jackson-core-asl-1.9.12.jar,您需要下载该jar包并设置classpath


抱歉问一个愚蠢的问题,但我该如何在Android Studio和Windows 7上完成它? 请分享您是如何知道库版本的? - pavelartlover
还没有。我现在正在尝试按照您的指示操作。请问您能告诉我如何设置classpath吗? - pavelartlover
等一下,我会发送给你设置classpath的步骤。 - Ashish
下载JAR文件..在eclipse中右键单击项目名称..属性...Java构建路径..库选项卡...添加外部JAR..然后浏览已下载的JAR文件。 - Ashish
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/46910/discussion-between-pavelartlover-and-ashish - pavelartlover
我的项目中使用了ADT(Android开发工具),其中包含了Java构建路径。 - Ashish

0

我使用Android Studio,Android SDK工具版本为22.3。 - pavelartlover
你能否为你的项目添加Eclipse库序列的截图? - raVan

0

终于我找到了解决方案。 在我的情况下,它需要 jackson-all-1.9.11.jar

这个 jar 包含所有其他的 Jackson jars(核心、映射器等)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接