OSMDroid osmdroid-android-it项目无法编译

时间:2014-11-20 19:29:08

标签: android osmdroid tile mbtiles

我从这里下载了官方的OSMdroid示例。 https://github.com/osmdroid/osmdroid 并且无法使用Android SDK在最新的Eclipse IDE上编译osmdroid-android-it Android应用程序。我尝试使用API​​ 10和17.

我在http://android-er.blogspot.com/2012/05/prepare-java-build-path-to-osmdroid-and.html的项目中下载并包含当前的osmdroid-android-3.0.8.jar和slf4j-android-1.5.8.jar。 enter image description here

enter image description here

osmdroid-android-it项目仍无法识别src文件夹下的OSMDROID库。

我需要的是自定义MBTiles工作OSMDroid示例类似如下: http://www.sieswerda.net/2012/08/15/upping-the-developer-friendliness/

我从这里下载了MBTiles示例: https://github.com/djcoin/MBTilesOsmdroidExample与OSMDroid .jar文件相同的问题。无法识别OSMDroid库。

我需要的是Android版自定义地图应用,类似于此iphone airplane chart一个。

以下是我编译错误的屏幕截图。

enter image description here

的AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="org.osmdroid.test" android:versionCode="1" android:versionName="4.3-SNAPSHOT">

<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="16"/>

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <uses-library android:name="android.test.runner"/>
</application>

<instrumentation android:targetPackage="org.osmdroid"
                 android:name="android.test.InstrumentationTestRunner"/>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
    <groupId>org.osmdroid</groupId>
    <artifactId>osmdroid-parent</artifactId>
    <version>4.3-SNAPSHOT</version>
</parent>

<artifactId>osmdroid-android-it</artifactId>
<version>4.3-SNAPSHOT</version>
<packaging>apk</packaging>
<name>osmdroid-android-it - Integration tests</name>

<dependencies>
    <dependency>
        <groupId>android</groupId>
        <artifactId>android</artifactId>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.osmdroid</groupId>
        <artifactId>OpenStreetMapViewer</artifactId>
        <type>apk</type>
        <version>4.3-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.osmdroid</groupId>
        <artifactId>OpenStreetMapViewer</artifactId>
        <type>jar</type>
        <version>4.3-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.osmdroid</groupId>
        <artifactId>osmdroid-android</artifactId>
        <type>jar</type>
        <version>4.3-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <groupId>com.jayway.maven.plugins.android.generation2</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <configuration>
                <test>
                    <!--<skip>true|false|auto</skip> -->
                    <!--<instrumentationPackage>packageName</instrumentationPackage> -->
                    `
                    <!--<instrumentationRunner>className</instrumentationRunner> -->
                    <!--<debug>true|false</debug> -->
                    <!--<coverage>true|false</coverage> -->
                    <!--<logonly>true|false</logonly> avd -->
                    <!--<testsize>small|medium|large</testsize> -->
                    <createReport>true</createReport>
                    <!--<classes> -->
                    <!--<class>your.package.name.YourTestClass</class> -->
                    <!--</classes> -->
                    <!--<packages> -->
                    <!--<package>your.package.name</package> -->
                    <!--</packages> -->
                </test>
            </configuration>
            <extensions>true</extensions>
        </plugin>
    </plugins>
</build>

1 个答案:

答案 0 :(得分:2)

1)当前的osmdroid版本是v4.2。 v3.0.8完全过时,不适用于当前的OSM Mapnik服务器。

2)您同时使用jar libs包含(使用3.0.8)和Maven(使用4.3-SNAPSHOT)。 您必须选择其中一种方法。 见https://github.com/osmdroid/osmdroid/wiki/HowToMaven