导入无法解决

时间:2013-03-21 20:26:18

标签: android

我有一个包含多个导入的活动类,但其中一些在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 个答案:

答案 0 :(得分:28)

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

Google Play服务

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

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

    • 导入 - >项目 - > Android - >现有的Android代码进入Workspace,检查复制到工作区并浏览到你的android sdk文件夹所在的位置:< android sdk文件夹> / extras / google / google_play_services / libproject / google-play-services_lib
    • 点击完成

<强>项目

  • 转到项目属性,点击Android,点击Google API
  • 修改构建路径以包含最近添加的jar(google-play-services-lib.jar)[位于google-play-service-lib项目的bin目录下]
  • 您需要确保您的应用已在Google注册
    • 请注意此应用的程序包名称
    • 要将此注册到谷歌,您需要验证&lt;&lt; android_sdk&gt; .android为 debug.keystore
    • 打开一个cmd窗口(我假设您正在使用Windows)浏览到C:\ Program Files \ Java \&lt; JDK版本&gt;或安装java的地方,将其命名为获取SHA1指纹的命令:
    • keytool -list -v -keystore“C:\ Program Files(x86)\ Android \ android-sdk.android \ debug.keystore” -alias androiddebugkey -storepass android -keypass android
      • 引用路径(需要引号)是密钥库的路径
      • 右键单击“标记”,在“SHA1:”按Enter键复制
      • 后突出显示文本

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:你复制的指纹吗?将它粘贴在然后出现的两者中&lt; SHA1指纹文本&gt ;;&lt; package_name如前所述&gt;

回到项目

返回项目

  • 转到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控制台

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

答案 1 :(得分:1)

试试这个答案:

The import com.google.android.gms cannot be resolved

  1. 使用Google Play jar制作图书馆项目(在上面的答案中,它使用maps.jar)。我使用的是与@Vnge的回复中使用的相同的罐子,即&lt; android sdk文件夹&gt; / extras / google / google_play_services / libproject / google-play-services_lib

  2. 在该库项目位于工作区之后,请从当前项目中引用该项目,即出错。我的答案中的链接提供了这样做的方法。 @Alex也在链接中回答。

  3. 希望它可以帮到你。

答案 2 :(得分:0)

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

  1. 打开Android SDK Manager。
  2. 查看Google Map API以了解项目中使用的特定Android版本:
  3. 安装并重新启动eclipse。
  4. 希望这有帮助!

答案 3 :(得分:0)

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