10

私の 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.corebuild.gradle
  • このように構成された他の構成を見つけたので、一時的にdependenciesブロックをブロックに移動しました。ただし、違いはないようです。androidbuild.gradle
4

2 に答える 2

3

グラドル

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.app.test"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 4
        versionName "1.3"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
    }
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')  
    compile 'com.android.support:appcompat-v7:22.2.0'  `enter code here`
    compile 'com.fasterxml.jackson.core:jackson-databind :2.5.3'

}

アクセス許可と依存関係を Gradle に追加してから、オブジェクト ラッパー クラスを取得する gradle をビルドします。

于 2016-03-14T13:52:45.947 に答える