java.lang.NoClassDefFoundError:未能解析:Lcom/fasterxml/jackson/d



致命异常:main流程:com.example.mickey4real.helloworld,PID:19318

  • 嗨,我正在尝试制作一个可以连接到亚马逊SimpleDB的android应用程序。当我试图运行一个从我的SimpleDB域执行SelectRequest的程序时,我遇到了以下错误。有人能帮我吗?

    java.lang.NoClassDefFoundError:未能解析:Lcom/fasterxml/jackson/databind/ObjectMapper;

com.amazonaws.internal.config.InteralConfig.(InternalConfig.java:43)

网址:com.amazonaws.internal.config.InteralConfig.load(InternalConfig.java)

网址:com.amazonaws.internal.config.InteralConfig$Factory。(InternalConfig.java:304)

网址:com.amazonaws.util.VersionInfoUtils.userAgent(VersionInfoUtils.java:139)

网址:com.amazonaws.util.VersionInfoUtils.initializeUserAgent(VersionInfoUtils.java:134)

网址:com.amazonaws.util.VersionInfoUtils.getUserAgent(VersionInfoUtils.java:95)

网址:com.amazonaws.ClientConfiguration.(ClientConfiguration.java:61)

网址:com.amazonaws.services.simpedb.AmazonSimpleDBClient.(AmazonSimpleDBlient.java:133)

网址:com.example.mickey4real.helloworld.AWSConnection.getSimpleDB(AWSConnection.java:23)

网址:com.example.mickey4real.helloworld.Login.getAllUsernames(Login.java:115)

网址:com.example.mickey4real.helloworld.Login.onClick(Login.java:169)

在android.view.view.performClick(view.java:5197)

在android.view.view$PerformClick.run(view.java:20926)

在android.os.Handler.handleCallback(Handler.java:739)

在android.os.Handler.dispatchMessage(Handler.java:95)

在android.os.Looper.loop(Looper.java:145)

在android.app.ActivityThread.main(ActivityThreads.java:5951)

位于java.lang.reflect.Method.ioke(本机方法)

位于java.lang.reflect.Method.ioke(Method.java:372)

网址:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)

网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:1195)

由以下原因引起:java.lang.ClassNotFoundException:在路径DexPathList[[zip文件"/data/app/com.example.mickey4real.helloworld-2/base.apk"]上找不到类"com.fasterxml.jjackson.databind.ObjectMapper",nativeLibraryDirectories=[/vendor/lib,/system/lib]]

在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

在java.lang.ClassLoader.loadClass(ClassLoader.java:511)

在java.lang.ClassLoader.loadClass(ClassLoader.java:469)

网址:com.amazonaws.internal.config.InteralConfig.(InternalConfig.java:43)

网址:com.amazonaws.internal.config.InteralConfig.load(InternalConfig.java)

网址:com.amazonaws.internal.config.InteralConfig$Factory。(InternalConfig.java:304)

网址:com.amazonaws.util.VersionInfoUtils.userAgent(VersionInfoUtils.java:139)

网址:com.amazonaws.util.VersionInfoUtils.initializeUserAgent(VersionInfoUtils.java:134)

网址:com.amazonaws.util.VersionInfoUtils.getUserAgent(VersionInfoUtils.java:95)网址:com.amazonaws.ClientConfiguration.(ClientConfiguration.java:61)

网址:com.amazonaws.services.simpedb.AmazonSimpleDBClient.(AmazonSimpleDBlient.java:133)

网址:com.example.mickey4real.helloworld.AWSConnection.getSimpleDB(AWSConnection.java:23)

网址:com.example.mickey4real.helloworld.Login.getAllUsernames(Login.java:115)

网址:com.example.mickey4real.helloworld.Login.onClick(Login.java:169)

在android.view.view.performClick(view.java:5197)

在android.view.view$PerformClick.run(view.java:20926)

在android.os.Handler.handleCallback(Handler.java:739)

在android.os.Handler.dispatchMessage(Handler.java:95)

在android.os.Looper.loop(Looper.java:145)

在android.app.ActivityThread.main(ActivityThreads.java:5951)

位于java.lang.reflect.Method.ioke(本机方法)

位于java.lang.reflect.Method.ioke(Method.java:372)

网址:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:1195)

已抑制:java.lang.ClassNotFoundException:com.fasterxml.jackson.databind.ObjectMapper位于java.lang.Class.classForName(本机方法)

在java.lang.BootClassLoader.findClass(ClassLoader.java:781)

在java.lang.BootClassLoader.loadClass(ClassLoader.java:841)

位于java.lang.ClassLoader.loadClass(ClassLoader.java:504)…还有22个由以下原因引起:java.lang.NoClassDefFoundError:使用引导类加载程序找不到类;无堆栈可用

这是我连接到SimpleDB的代码

public static AmazonSimpleDB getSimpleDB(){
if(sdb == null){
BasicAWSCredentials credentials = new BasicAWSCredentials(getProperties().getProperty("accessKey"), getProperties().getProperty("secretKey"));
sdb = new AmazonSimpleDBClient(credentials);
}
return sdb;
}

我尝试执行SelectRequest

`SelectRequest selectRequest=  new SelectRequest("select username from domain").withConsistentRead(true);`
`List<com.amazonaws.services.simpledb.model.Item> items  = AWSConnection.getSimpleDB().select(selectRequest).getItems();`

但我不断地犯这个烦人的错误,我不知道为什么。有人能帮我吗?

最后,这里是我的Build.gradle文件中的依赖项。有人能帮我吗?我很困惑。

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:multidex:1.0.1'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.1'}

这是我的舱单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mickey4real.helloworld">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Login">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SiteList">
</activity>
<activity android:name=".AlarmList">
</activity>
<activity android:name=".Form">
</activity>
<activity android:name=".SiteMap">
</activity>
<activity android:name=".SiteInfo">
</activity>
<activity android:name=".Home">
</activity>
</application>

我已经解决了这个问题。我只需要将丢失的JAR文件包含到我的依赖项中。在这种情况下,它是:com.fasterxml.jackson.core:jackson databind:2.7.0,错误消失了。

找不到Jackson库:将此编译行添加到您的gradle(应用程序模块):

compile 'com.fasterxml.jackson.core:jackson-databind:2.3.2'

还请检查哪一个是杰克逊图书馆的最后一个版本

相关内容

  • 没有找到相关文章

最新更新