2

我正在尝试设置一个使用 OSMDroid api 处理映射的新 Android 应用程序。我遵循了似乎是最常见的在线教程,并且在解决了我遇到的大部分错误之后。该应用程序将编译,但一旦启动,我就会收到运行时错误,显示 org.osmdroid.MapView 的 NoClassDefFound。根据所有其他 Stack Overflow 建议,我已确保 jar 都位于项目目录的文件夹 libs 中。我正在使用 Android Studio,这增加了复杂性。这里是我的 build.gradle 供参考:

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

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
}

dependencies {
    compile 'com.google.android.gms:play-services:3.1.36'
}

dependencies {
    compile files('libs/slf4j-android-1.5.8.jar')
}

dependencies {
    compile files('libs/osmdroid-android-3.0.10.jar')
}

dependencies {
    compile files('libs/osmdroid-third-party-3.0.10.jar')
}

dependencies {
    compile files('libs/osmdroid-packager-3.0.10.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 14
    }
}
4

1 回答 1

0

您需要做的是从 OSMDroid repo https://code.google.com/p/osmdroid/wiki/Downloads下载 Jar 文件

那么你的 gradle 在依赖部分应该是这样的:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('.../libraries/osmdroid-android-4.2.jar')
    compile files('.../libraries/slf4j-android-1.6.1-RC1.jar')
}

或者直接点击这个链接:

https://code.google.com/p/osmdroid/wiki/HowToIncludeInYourProject

于 2015-01-06T08:25:56.240 回答