很抱歉,我只添加了另一个"android地图依赖项找不到“的问题,但我认为我已经阅读了大部分关于它的文章,并且应用了所有建议的解决方案,但都没有成功。
我有一个使用Google的V2依赖项运行的maven Android项目,它不是使用maven引用的,而是通过在工作区和eclipse构建路径库依赖项中导入的google services_lib项目引用的。
现在,我正试图通过pom配置google-play-services依赖项,因为我正在使用Robolectric实现maven自动化测试,但在pom的第一行中显示的错误使我陷入困境,没有快速修复:
在工作区中找不到dependency=com.google.android.gms:google-play-services:apklib:7:compile
到目前为止,我已经尝试过了,在谷歌搜索了很多之后,每一步都要检查结果,但都没有成功:
<packaging>apklib</packaging>,并在<extensions>true</extensions>中添加了android plugin,以便识别apklib包类型。我用maven目标编译编译了这个项目,并取得了成功,但是我在任何地方都找不到生成的apklib文件。每次更改之后,我都会执行Maven / Update项目,清理项目,甚至重新启动Eclipse。没有成功:空间错误中找不到的依赖关系仍然存在。
我不知道还能尝试什么。会不会是图书馆的名字?库项目名为google.play-services _lib,带有_lib后缀,eclipse库构建路径中引用的jar是_lib.jar,但是_lib构件没有_lib后缀。我也尝试过在组件和工件中重命名,但没有成功,但我想问题可能在那里。有人能发布一个例子pom.xml的服务_lib项目吗?
另一个猜测:当mvn编译mavenised库项目时,为什么我找不到生成的.apklib文件,它在哪里?我用mvn -X编译检查了跟踪,没有找到任何提示。
环境和版本:
Eclipse Indigo
External maven 3.0.5 (embedded Maven 3.0.3 not used)
android-maven-plugin 3.6.0
maven-eclipse-plugin 2.8
m2e-android plugin (m2eclipse android integration) 0.4.2
Android API level 13我添加到google services_lib项目中的pom.xml:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>google-play-services_lib</groupId>
<artifactId>google-play-services_lib</artifactId>
<version>7</version>
<packaging>apklib</packaging>
<properties>
<android-platform>13</android-platform>
<android-emulator>13</android-emulator>
<android-maven-plugin-version>3.6.0</android-maven-plugin-version>
<maven-compiler-plugin-version>3.0</maven-compiler-plugin-version>
<java-version>1.6</java-version>
<local-sdk-path>C:\NoProgramFiles\Android\android-sdk</local-sdk-path>
</properties>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>${android-maven-plugin-version}</version>
<configuration>
<sdk>
<path>${local-sdk-path}</path>
<platform>${android-platform}</platform>
</sdk>
<emulator>
<avd>${android-emulator}</avd>
</emulator>
<deleteConflictingFiles>true</deleteConflictingFiles>
<undeployBeforeDeploy>true</undeployBeforeDeploy>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin-version}</version>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
</configuration>
</plugin>
</plugins>
</build>
发布于 2013-07-08 07:51:48
最后,问题是在apk库项目中没有生成工件命名和apklib。这就是问题所在:
正确的价值观:
<groupId>com.google.android.gms</groupId>
<artifactId>google-play-services</artifactId>而不是eclipse在将项目转换为maven时生成的,而maven基于项目名称:
<groupId>google-play-services_lib</groupId>
<artifactId>google-play-services_lib</artifactId>mvn compile生成的,正确的指令是mvn package。这样,apklib文件就会在项目库的目标文件夹中生成。因此,M2E-Android0.4.2支持apklib依赖于m2e化的google服务apklib,尽管库项目仍然必须包含在工作区中。
最后注意:在实际设备中运行映射活动时,我得到了运行时错误:
07-08 09:42:45.170: W/dalvikvm(27953): VFY: unable to resolve virtual method 4296: Lcom/google/android/gms/maps/GoogleMap;.setMapType (I)V
07-08 09:42:45.180: E/dalvikvm(27953): Could not find class 'com.google.android.gms.maps.SupportMapFragment', referenced from method mypackage.MyMapActivity.setUpMapIfNeeded
07-08 09:42:45.180: W/dalvikvm(27953): VFY: unable to resolve check-cast 801 (Lcom/google/android/gms/maps/SupportMapFragment;) in Lmyapp/MyMapActivity;
07-08 09:42:45.180: E/dalvikvm(27953): Could not find class 'com.google.android.gms.maps.SupportMapFragment', referenced from method mypackage.MyMapActivity.onCreate
07-08 09:42:45.200: E/AndroidRuntime(27953): java.lang.RuntimeException: Unable to start activity ComponentInfo{mypackage/mypackage.MyMapActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment地图库似乎没有包含在应用程序apk中。我的修正:在google-play_services_lib项目eclipse / Java / Order和Export中,我选中了Android复选框,因此在运行的设备中安装了原来的google。
发布于 2014-10-06 12:15:58
如果命名不匹配问题仍然存在(库pom和项目pom中相同的名称),在更新maven项目(项目资源管理器,右键单击任意项目-> maven ->update项目)后,尝试删除该消息(!)。
“问题”选项卡,右键单击“错误消息”并选择“删除”。为我和Kevin在工作区修复中找不到Eclipse依赖项工作
https://stackoverflow.com/questions/17465078
复制相似问题