【问题标题】:The import com.google.android.gms cannot be resolved导入 com.google.android.gms 无法解析
【发布时间】:2013-04-06 02:03:10
【问题描述】:

我是 Android 开发新手。通过关注this tutorial,当我将代码写入MainActivity.java 时出现错误The import com.google.android.gms cannot be resolved

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

通过搜索各种修复,我确保尝试了这些:

  • 我已通过以下方式下载了特定 API 级别的 Google API Android SDK 管理器。
  • 我已将 Google API 勾选为项目构建目标。
  • 我已添加<uses-library android:name="com.google.android.maps" /> 作为<application> 标记的子级插入AndroidManifest.xml
  • 我通过选择Project->Clean... 清理了项目并构建了它 从头开始。
  • 我通过右键单击我的项目包含了 .jar 地图文件,然后 在我的 SDK 中构建路径并添加外部存档:android-sdk-windows\add-ons\addon_google_apis_google_inc_8\libs\maps

很遗憾,上述方法均无济于事。

【问题讨论】:

    标签: android google-maps import


    【解决方案1】:

    另一种方法是让 Eclipse 为您完成导入工作。将鼠标悬停在无法解析的com.google.android.gms 导入上,然后在弹出菜单的底部选择Fix project setup... 选项,如下所示。然后它会提示导入谷歌播放服务库。选择它,你应该很高兴。

    【讨论】:

    • 当我尝试这个建议的解决方案时,我收到这条消息:“没有找到修复对 'com.google.android.gms.internal.fn' 的不可解析引用的建议。单击此处手动配置构建路径或项目'CouponClub'。”我已经成功导入了“google-play-services_lib”,所以我认为这足以访问 com.google.android.gms.internal.fn。
    【解决方案2】:

    我将 Google API 勾选为项目构建目标。

    这无关紧要,对于 Maps V1 而言,您正在尝试使用 Maps V2。

    我通过右键单击我的项目来包含地图的 .jar 文件,转到构建路径并添加外部存档,在我的 SDK 中定位它:android-sdk-windows\add-ons\addon_google_apis_google_inc_8\libs\maps

    这是双重错误。

    首先,切勿在 Android 项目中手动修改构建路径。如果您这样做,充其量会在运行时崩溃,因为您认为您放入项目中的 JAR(通过手动构建路径更改)不在您的 APK 中。对于普通的第三方 JAR,将其放在项目的 libs/ 目录下,它会自动将其添加到您的构建路径中将其内容添加到您的 APK 文件中。

    但是,Maps V2 不是 JAR。它是一个包含 JAR 的 Android 库项目。您需要整个库项目。

    您需要将android-sdk-windows\add-ons\addon_google_apis_google_inc_8 项目导入Eclipse,然后将其添加到您的应用程序as a reference to an Android library project

    【讨论】:

    • 你是对的。我导入了google-play-services-lib(其中还包含地图),然后将其添加为参考,这些错误现在已经消失了。我仍然不确定如何处理已导入的 .jar 文件。我应该担心以某种方式删除它吗?
    • @ArnoldasBendoraitis:撤消您对构建路径所做的手动更改。
    • 澄清:使用 File → Import → Android → Existing Android Code into Workspace 将项目导入 Eclipse。当然,如果您不使用 Windows,您要查找的目录不会被称为“android-sdk-windows”。 ;-)
    • @CommonsWare,不知何故,如果我直接添加 Jar,它会起作用,但是当我尝试引用该项目时,它不起作用。当我执行“添加”时,参考显示绿色勾号。但是,当我单击“确定”并重新打开“项目”>“属性”时,它又变成了一个红十字。你知道为什么会这样吗?
    • 也许是更新。但目前导入的路径是 \extras\google\google_play_services\libproject\google-play-services_lib
    【解决方案3】:

    根据我的经验(Eclipse):

    1. 将 google-play-services_lib 添加为项目并从我的应用程序中引用它。
    2. 删除了所有手动添加的 jar
    3. 在我的项目的“libs”文件夹中添加了 google-play-services.jar。
    4. 我遇到了一些大问题,因为我搞砸了 Order 和 Export 选项卡,因此有效的解决方案是(按此顺序):src、gen、Google API、Android 依赖项、Android 私有库(只有这个被选中才能导出)。

    【讨论】:

    • 为什么要手动添加 Play Services jar,如果 Gradle 会在构建中为您处理它?
    • 因为我没有时间使用 Gradle 将我的项目转换为 Android Studio 格式。这是 Eclipse IDE 的解决方案。
    【解决方案4】:

    在我的情况下或全部使用 android studio

    你可以导入google play服务

    放在你的build.gradle

    compile 'com.google.android.gms:play-services:7.8.0'
    

    或最新版本的播放服务取决于您观看此答案的时间

    更具体的导入

    请查看这个单独的 gradle 导入

    https://developers.google.com/android/guides/setup

    谷歌地图

    com.google.android.gms:play-services-maps:7.8.0
    

    可能发生错误

    如果您在将项目与 gradle 文件同步时遇到错误

    确保安装最新更新

    1- Android 支持存储库。

    2- Android 支持库。

    3- 谷歌存储库。

    4-Google Play 服务。

    您可能需要重启 android studio 才能响应

    【讨论】:

      【解决方案5】:

      请注意,将 google-play-services_lib 项目导入 IDE 后,您还需要将 google-play-services.jar 添加到: Project=>Properties=>Java 构建路径=>Libraries=>添加 JAR

      【讨论】:

      • 最简单的一行答案。即使在导入 Play Services 之后,我也无法弄清楚发生了什么。然后我厌倦了将其更改为 Google_apis。最后,单行解决方案对我有用。
      • 小心,这样会出问题:stackoverflow.com/questions/15894143/…
      【解决方案6】:

      以上解决方案应该可以解决您的问题。如果这些都没有,请确保您使用 SDK 管理器更新您的 Android sdk 并安装最新的 lib 项目,然后再次重复上述步骤。

      【讨论】:

        【解决方案7】:

        再次确保这两件事正确发生。 (对于 ECLIPSE 用户)

        1) 从 --> C:\Users(your-username)\android-sdks\extras\google\google_play_services\libproject\google-play-services_lib\libs\ google-play- 复制 jar 文件services.jar

        2)右键项目-->构建路径->添加外部存档->google-play-services.jar

        【讨论】:

          【解决方案8】:

          在 Android Studio 中转到: 文件 -> 项目结构... -> 通知(最后一个条目)-> 检查 Google Cloud Messaging

          等待几秒钟,您就完成了 :) import com.google.android.gms.gcm.GcmListenerService 应该正确解析

          【讨论】:

            【解决方案9】:

            我也有同样的问题。通过使用最新的 sdk 工具版本进行编译来解决它。(播放服务、构建工具等)。示例 build.gradle 如下所示,以供参考。

                apply plugin: 'com.android.application'
            
            
            android {
                compileSdkVersion 23
                buildToolsVersion "23.0.1"
            
                defaultConfig {
                    applicationId "com.abc.bcd"
                    minSdkVersion 14
                    targetSdkVersion 23
                    versionCode 1
                    versionName "1.0"
                }
                buildTypes {
                    release {
                        minifyEnabled false
                        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                    }
                }
            }
            
            dependencies {
                compile fileTree(dir: 'libs', include: ['*.jar'])
                compile 'com.google.android.gms:play-services:8.4.0'
                compile 'com.android.support:appcompat-v7:23.0.1'
            }
            

            【讨论】:

              【解决方案10】:

              假设您正在使用 ECLIPSE:

              右击项目 特性 安卓

              如果您选择了 ANDROID 版本,则必须将其更改为 GOOGLE API。 选择与您项目的目标版本兼容的 GOOGLE APIS 版本。

              【讨论】:

              • 请详细说明。
              • @DmitryIsakov 希望我澄清什么步骤?
              • 看起来我做到了...从 Eclipse 迁移到 AStudio 并非易事
              • @DmitryIsakov - 我尝试过但不得不停下来,因为我无法从开发中抽出时间并将其专门用于迁移。你能告诉我你采取的一些基本步骤吗?
              【解决方案11】:

              就我而言,只有在我将 gcm.jar 添加到 lib 文件夹后,它才开始工作。 就在这里:C:\adt-bundle-windows-x86_64-20131030\sdk\extras\google\gcm\gcm-client\dist

              所以google-play-services.jar 不起作用...

              【讨论】:

              • 这个问题与谷歌地图 v1 无关。这是关于谷歌地图 v2 的。在这种情况下 gcm.jar 是没用的。
              【解决方案12】:

              我有同样的问题,所以我决定如下愚蠢的API 更改导入行

              import com.google.android.gms.maps.model.LatLng;
              

              【讨论】:

                猜你喜欢
                • 2019-02-12
                • 2018-03-07
                • 2018-03-06
                • 1970-01-01
                • 2012-04-04
                • 2013-10-04
                • 1970-01-01
                • 2016-03-12
                • 2018-08-07
                相关资源
                最近更新 更多