无法解析导入com.google.android.gms

时间:2013-04-13 16:27:12

标签: android google-maps import

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

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" /> 作为AndroidManifest.xml代码的子项排成<application>
  • 我通过选择Project->Clean...并构建它来清理项目 从头开始。
  • 通过右键点击我的项目,我为地图添加了.jar文件,然后去了 构建路径并添加外部存档,将其定位在我的SDK中:android-sdk-windows\add-ons\addon_google_apis_google_inc_8\libs\maps

不幸的是,以上都没有帮助。

12 个答案:

答案 0 :(得分:53)

另一种方法是让Eclipse为您执行导入工作。将鼠标悬停在无法解析的com.google.android.gms导入上,然后在弹出菜单底部选择修复项目设置... 选项,如下所示。然后它会提示导入Google Play服务库。选择那个,你应该好好去。

enter image description here

答案 1 :(得分:40)

  

我将Google API作为项目构建目标进行了检查。

这是无关紧要的,就像地图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

答案 2 :(得分:19)

根据我的经验(Eclipse):

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

答案 3 :(得分:13)

在我的情况下或所有使用android studio

您可以导入Google Play服务

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

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

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

  

更具体的导入

请查看此个别gradle进口

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

Google地图

<first>one</first><second>two</second><third>three</third>
  

可能发生错误

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

enter image description here

确保安装最新更新

1- Android支持存储库。

2- Android支持库。

3- Google Repository。

4-Google Play Services。

enter image description here

您可能需要重启Android工作室才能回复

答案 4 :(得分:7)

请注意,将google-play-services_lib项目导入IDE后,您还需要将google-play-services.jar添加到: Project =&gt; Properties =&gt; Java build path =&gt; Libraries =&gt; Add JARs

答案 5 :(得分:1)

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

答案 6 :(得分:1)

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

1)从 - &gt;复制jar文件C:\ Users(你的用户名)\ android-sdks \ extras \ google \ google_play_services \ libproject \ google-play-services_lib \ libs \ google-play-services.jar

2)右键单击项目 - &gt;构建路径 - &gt;添加外部存档 - &gt; google-play-services.jar

答案 7 :(得分:1)

在Android Studio中转到: 档案 - &gt;项目结构...... - &gt;通知(最后一项) - &gt;检查Google Cloud Messaging

等几秒钟你完成了:) 应正确解析导入com.google.android.gms.gcm.GcmListenerService

答案 8 :(得分:0)

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

b = $('#b');
function css(a) {
    var sheets = document.styleSheets,
        o = {};
    for (var i in sheets) {
        var rules = sheets[i].rules || sheets[i].cssRules;
        for (var r in rules) {
            if (a.is(rules[r].selectorText)) {
                o = $.extend(o, css2json(rules[r].style), css2json(a.attr('style')));
            }
        }
    }
    return o;
}
function css2json(css) {
    var s = {};
    if (!css) return s;
    if (css instanceof CSSStyleDeclaration) {
        for (var i in css) {
            if ((css[i]).toLowerCase) {
                s[(css[i]).toLowerCase()] = (css[css[i]]);
            }
        }
    } else if (typeof css == "string") {
        css = css.split("; ");
        for (var i in css) {
            var l = css[i].split(": ");
            s[l[0].toLowerCase()] = (l[1]);
        }
    }
    return s;
}
myCSS = objToString(css(b));
function objToString(obj) {
    var str = '{\n';
    for (var p in obj) {
        if (obj.hasOwnProperty(p)) {
            str += '    ' + p + ': ' + obj[p] + ';\n';
        }
    }
    str += '}';
    return str;
}
function download(text, name, type) {
    var a = document.createElement("a");
    var file = new Blob([text], {
        type: type
    });
    a.href = URL.createObjectURL(file);
    a.download = name;
    a.click();
}
b.on('click', function() {
    download(myCSS, 'test.css', 'text')
});

答案 9 :(得分:0)

假设您正在使用ECLIPSE:

右键单击PROJECT 性能 机器人

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

答案 10 :(得分:-1)

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

所以google-play-services.jar无效......

答案 11 :(得分:-3)

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

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