- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
很抱歉添加了另一个“未找到 android maven google maps 依赖项”问题,但我认为我已经阅读了大部分关于它的帖子并应用了所有建议的解决方案但没有成功。
我有一个运行正常的 maven Android 项目,它具有 Google Maps V2 依赖项,它不是使用 maven 引用的,而是通过工作区中导入的 google-play-services_lib 项目和 eclipse 构建路径库依赖项引用的。
现在我正在尝试通过 pom 配置 google-play-services 依赖项,因为我正在使用 Robolectric 实现 maven 自动化测试,但是我被 pom 第一行中显示的错误卡住了,没有快速修复:
dependency=[com.google.android.gms:google-play-services:apklib:7:compile] not found in workspace
到目前为止我已经尝试过,经过大量谷歌搜索,并在每一步都没有成功后检查结果:
最初使用 android-maven-sdk-helper(在 these instructions 之后)将 google play 服务组件安装到我的本地 .m2 存储库,并向项目 pom 添加两个对 jar 和 apklib 版本 7 的依赖项,这是我的本地安装的版本(如 here )。在此之后它应该可以工作但是出现了依赖错误。
从 eclipse 构建路径中删除对库 google-play-services_lib 的引用(在 project/preferences/Android/Libraries 中)。无论如何,google-play-services_lib 项目仍在工作区中。
将 apklib 从我的本地 m2 存储库复制到工作区中的某个位置:我尝试了 google-play-services_lib/bin、google-play-services_lib/libs、MyProject/libs。使用名称 google-play-services-7.apklib(如在存储库文件中)和 google-play-services.apklib 进行测试。
“Mavenise”将 google-play-services_lib 项目包含在工作区中,通过运行 eclipse Configure/Convert to Maven 项目。我编辑了生成的 pom 以将包装类型更新为 apklib:<packaging>apklib</packaging>
,并添加了带有 <extensions>true</extensions>
的 android-maven-plugin|为了识别 apklib 包类型。我用 maven goal compile 编译了这个项目,成功了,但是我在任何地方都找不到生成的 apklib 文件。
每次更改后,我都会执行 Maven/更新项目、清理项目,甚至重新启动 Eclipse。没有成功:在空间错误中找不到依赖项仍然存在。
我不知道还能尝试什么。它可能是带有图书馆名称的东西吗?库项目名称为google.play-services_lib,后缀为_lib,eclipse android库构建路径中引用的jar为_lib.jar,但maven artifacts没有_lib后缀。我也尝试过对组件和 Artifact 进行一些重命名,但没有成功,但我想问题可能就在那里。有人可以为 mavenised google-play-services_lib 项目发布示例 pom.xml 吗?
另一种猜测:当我mvn编译mavenised库项目时,为什么找不到生成的.apklib文件,它在哪里?我用 mvn -X compile 检查了跟踪,没有发现任何提示。
环境和版本:
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-play-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>
最佳答案
最后,问题出在 apk 库项目中没有生成 Artifact 命名和 apklib。这是错误的:
正确的值(value)观:
<groupId>com.google.android.gms</groupId>
<artifactId>google-play-services</artifactId>
而不是eclipse在项目转maven时根据项目名生成的:
<groupId>google-play-services_lib</groupId>
<artifactId>google-play-services_lib</artifactId>
mvn compile
生成的,正确的指令是mvn package
。这样就在项目库的目标文件夹中生成了apklib文件。所以 m2e-android 0.4.2 支持 apklib 与 mavenised google-play-services apklib 的依赖关系,尽管库项目仍然必须包含在工作区中。
最后说明:在真实设备中运行 map Activity 时出现运行时错误:
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
似乎 map 库未包含在应用程序 apk 中。我的修复:在 google-play_services_lib
项目 eclipse Properties/Java Build Path/Order and Export 选项卡中,我选中了 Android Private Libraries 复选框,因此原始的 google maps jar 安装在运行的设备中。
关于android - 依赖=[com.google.android.gms :google-play-services:apklib:7:compile] not found in workspace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17465078/
我的设备有一项需要 24/7 全天候工作的前台服务。有时,当 gms 更新发生时,它会终止所有 gms 服务并重新启动它们。 我的服务也在使用 gms(firbase AuthService),所以它
我的应用程序的 OS 4.x 版本中止找不到类 .NoClassDefFoundError: com.google.android.gms.internal.zzno。当手机使用更高版本的 Googl
我是新的 Android 设备,并且对支付部分更加陌生,我正在通过此链接将 Gpay 实现到我的应用程序中 https://developers.google.com/pay/api/android/
我有一个已发布 Alpha 版本的应用。 我在我的应用程序中使用 Places SDK for Android、Mobile Crash Reporting API、Firebase Services
实际上,我正在尝试制作一个具有免费和付费风格的应用程序。当我使用简单的 findViewById 方法进行绑定(bind)时,它工作正常。但是当我尝试添加 butterknife 时,我拼命坚持使用
我尝试在更新 android studio 3.2.1 后修复我的应用程序的一些功能。但似乎我得到了更多的错误。当我尝试重建应用程序时。我收到了这个信使: Error: Type com.google
我试着在Stackoverflow上搜索,并尝试了其他类似性质的Stackoverflow问题中建议的解决方案,比如这个和那个,但我仍然得到以下错误插件[id:‘com.google.gms.goog
可能已经在其他一些上下文和依赖项中询问了这个问题。 但即使花了一整天,我仍然无法弄清楚这一点。 所以下面我将完整的错误日志与我的项目级 Gradle 文件和应用级 Gradle 文件一起粘贴。 尝试运
我将 com.google.android.gms:play-services-location 更新为 9.0.2 到 9.4.0 一切正常但无法解析 PlaceAutocompleteFragme
在 'com.google.android.gms:play-services-location:9.4.0' 无法导入导入com.google.android.gms.location.places
我将 com.google.android.gms:play-services-ads 更新为 15.0.2 并将类路径 com.google.gms:google-services: 更新为 3.3
我之前问过如何显示不同的markerInfoWindow in this question , 现在,当用户单击左角的按钮时,我正在尝试删除特定的标记。 首先在 .h 文件中: NSMutableAr
如何通过这种方法获得经纬度? - (void)mapView:(GMSMapView )mapView didEndDraggingMarker:(GMSMarker )marker; 我想在调用 d
我正在为我的 iOS 应用程序使用 Google Maps SDK。 我将其配置为当点击 GMSMarker 时,它会显示它的标题。一切正常。 我想对 GMSPolyline 做同样的事情,但不知道怎
我正在尝试使用 Google Play 游戏服务 API 为成就绘制图标。 然而,它正在默默地失败。 方法/问题: 图片的URI成功获取,存在且有效。 我使用 ImageManager.loadIma
我收到错误消息是因为我在尝试使用 Google 的应用程序索引库的同时还导入了一个库,该库将旧版本的 android gms 库用于不同的组件 - 来自 Google 的 cast 库玩服务。错误状态
Google 跟踪代码管理器可以在没有 Google 移动服务或 Firebase Analytics 的设备上运行吗? 例如:华为手机没有谷歌服务,只有华为服务在运行。 最佳答案 据我所知,Goog
如何同时拥有 Google 移动服务和 华为 应用程序中的移动服务? 就是这样 华为 已丢失超过 的许可证手机短信 ,看来我们需要替换所有手机短信 的应用程序中使用的服务华为 提供的。什么是“最佳实践
我确实如此 - 和许多开发人员一样,对臭名昭著的 android 65000 方法限制有问题。我已经对我的应用程序进行了多重索引,但我真的很想以某种方式使其更轻。 这是我的应用程序方法的图表(使用 d
我正在使用 JGroups 4.0.15.Final 来实现集群应用程序。当我启动两个节点时一切正常,它们连接并开始工作。但是当我杀死/重新启动一个节点时,它们将不再连接在一起。 注意:它们是我应用程
我是一名优秀的程序员,十分优秀!