5

我有一个包含多个导入的活动类,但其中一些在 Eclipse 中无法识别。我看到错误导入类名无法解析。

那是我的代码:

package com.ap.mapa;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
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;


public class MapaLugaresActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mapa_lugares);


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.mapa_lugares, menu);
    return true;
}

}

错误出现在每个导入 com.google.android.gms.maps 中。如果我输入另一个类作为 import android.content.Context; 没有错误。

我该如何修复它们?

谢谢。

4

4 回答 4

28

确保您使用的 api 版本是 Google API 以及安装了 google play 服务

谷歌播放服务

  • 打开SDK Manager,滚动到底部,展开“Extras”,选择“Google Play Services”,接受并下载。

  • 安装完成后,将其导入工作区

    • Import -> Project -> Android -> Existing Android Code into Workspace ,选中 copy to workspace 并浏览到您的 android sdk 文件夹所在的位置:<android sdk 文件夹>/extras/google/google_play_services/libproject/google-play-services_lib
    • 点击完成

项目

  • 转到项目属性,点击 Android,点击 Google APIs
  • 修改构建路径以包含最近添加的 jar (google-play-services-lib.jar) [位于 google-play-service-lib 项目的 bin 目录下]
  • 您需要确保您的应用已在 Google 注册
    • 记下此应用程序的包名称
    • 为了让这个在谷歌注册,你需要在 <android_sdk>.android 下验证你的 SHA1 证书指纹作为debug.keystore
    • 打开一个 cmd 窗口(我假设您在 Windows 上工作)浏览到 C:\Program Files\Java\<JDK version> 或安装了 java 的位置,输入以下命令以获取 SHA1 指纹:
    • keytool -list -v -keystore "C:\Program Files (x86)\Android\android-sdk.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
      • 引用路径(需要引号)是您的密钥库的路径
      • 右键单击“标记”突出显示“SHA1:”后的文本按回车键复制

Google API 控制台 因此,复制 SHA1 指纹后,您需要转到 https:\code.google.com/apis/console

  • 在“Google apis”下,单击下拉菜单并点击“创建”,将 API 项目命名为您想要的任何名称。
    • 现在应该会弹出服务,向下滚动到“Google Maps API v2 或 v3”和“Google Maps Android API v2”,单击其中一个的开关
    • 单击左侧的 API Access,将您带到“创建新的 Android 密钥”屏幕
    • 还记得你复制的 SHA1:指纹吗?将其粘贴到出现的两者中然后 <SHA1 指纹文本>;< package_name as described before>

返回项目

回到项目

  • 转到 AndroidManifest.xml

    • 将这些权限添加到您的清单中:

    • 确保你匹配你自己的包名而不是 com.example.androidmapsv2 <permission android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE" android:protectionLevel="signature"></permission> <uses-permission android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE"/> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-feature android:glEsVersion="0x00020000" android:required="true"/>

    • <application >标签下,在它下面添加:

    • <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="PASTE YOUR SHA1 CERTIFICATE KEY HERE"/>

      • 值来自 SHA1 指纹上方的 api 控制台

很多,我意识到了,但这就是我使用地图的方式

于 2013-03-21T21:18:57.703 回答
1

试试这个答案:

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

  1. 使用 Google Play jar 制作一个库项目(在上面的答案中它使用 maps.jar)。我使用了与@Vnge 的回复中使用的相同的 jar,即 <android sdk 文件夹>/extras/google/google_play_services/libproject/google-play-services_lib

  2. 在该库项目进入工作区后,请从您当前的项目中引用该项目,即出现错误的项目。我的答案中的链接提供了执行此操作的方法。还有@Alex在链接中的回答。

希望它可以帮助你。

于 2014-02-26T06:38:57.697 回答
0

@axmug。您需要使用 Android SDK Manager 添加 Google Maps API。

  1. 打开 Android SDK 管理器。
  2. 检查项目中使用的特定 Android 版本的 Google Map API:
  3. 安装并重启eclipse。

希望这可以帮助!

于 2013-03-21T20:42:50.707 回答
0

在项目属性 - Android 检查库 google-play-services_lib.jar 是否具有正确的路径。

于 2013-09-29T11:29:52.253 回答