Android Maven Eclipse 仍然无法导入 apklib

Posted

技术标签:

【中文标题】Android Maven Eclipse 仍然无法导入 apklib【英文标题】:Android Maven Eclipse still can't import apklib 【发布时间】:2013-09-18 15:48:00 【问题描述】:

我有一个 android Maven 项目,我正在尝试使用 Eclipse。我也在使用 Android Support v7 AppCompat 库。在我的 pom.xml 中,我同时导入了 apklib 和 jar。我已经尝试更新到 m2e-android 插件的 0.4.3-SNAPSHOT 版本,但我仍然收到错误

 Description    Resource    Path    Location    Type
dependency=[android.support:compatibility-v7-appcompat:apklib:18:compile] not found in workspace    pom.xml /Studio54   line 1  me.gladwell.eclipse.m2e.android.markers.dependency.apklib

这是我的 pom.xml

http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 com.lhs.app 54 工作室 0.0.7-快照 APK 工作室54

<repositories>
    <repository>
        <id>ossSonatype</id>
        <url>https://oss.sonatype.org/content/groups/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<properties>
    <platform.version>4.3_r1</platform.version>
</properties>

<dependencies>
    <dependency>
        <groupId>android</groupId>
        <artifactId>android</artifactId>
        <version>$platform.version</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>android.support</groupId>
        <artifactId>compatibility-v4</artifactId>
        <version>18</version>
    </dependency>
    <dependency>
        <groupId>android.support</groupId>
        <artifactId>compatibility-v7-appcompat</artifactId>
        <version>18</version>
        <type>apklib</type>
    </dependency>
    <dependency>
        <groupId>android.support</groupId>
        <artifactId>compatibility-v7-appcompat</artifactId>
        <version>18</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.4</version>
    </dependency>
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>volley</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.testflight</groupId>
        <artifactId>lib</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>org.robolectric</groupId>
        <artifactId>robolectric</artifactId>
        <version>2.2-SNAPSHOT</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.9</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>1.9.5</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>com.jayway.maven.plugins.android.generation2</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <version>3.6.1</version>
            <configuration>
                <androidManifestFile>$project.basedir/AndroidManifest.xml</androidManifestFile>
                <assetsDirectory>$project.basedir/assets</assetsDirectory>
                <resourceDirectory>$project.basedir/res</resourceDirectory>
                <nativeLibrariesDirectory>$project.basedir/src/main/native</nativeLibrariesDirectory>
                <sdk>
                    <platform>16</platform>
                </sdk>
                                    <undeployBeforeDeploy>true</undeployBeforeDeploy>
            </configuration>
            <extensions>true</extensions>
        </plugin>

        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>

【问题讨论】:

您的依赖库的源代码树是否已在本地工作区中检出?由于 ADT 的限制,您仍然需要拥有它。 不,我不知道。有问题的库是 Android v7 AppCompat 库(带有操作栏的库)。我是想在 Android SDK 本身中使用该版本,还是如果源已下载到我的本地 Maven 存储库,我应该使用它吗? 源似乎在 Github 上镜像:github.com/android/platform_frameworks_support/tree/master/v7/… 您需要对项目进行 mavenise 以便 m2e-android 可以检测到它。 除了我从SDK目录maven化的兼容性库外,我还需要检查和mavenize你链接的项目? 【参考方案1】:

您可以尝试更新您的 android sdk。并从 Help->Check for Updates 选项卡检查 eclipse 更新。

【讨论】:

以上是关于Android Maven Eclipse 仍然无法导入 apklib的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse配置了MAVEN,但是MAVEN工程无法拉去依赖包

Eclipse项目转Android

eclipse插件Maven添加依赖查询无结果的解决方法(Select Dependency doesn't work)

无法在 Eclipse 中导入 Maven 依赖项?尝试了一切

Maven/Eclipse/Android升级API版本

如何解决 Eclipse 中 Android 应用程序的 Maven 配置问题?