【问题标题】:Unable instantiate android.gms.maps.MapFragment无法实例化 android.gms.maps.MapFragment
【发布时间】:2012-11-23 01:04:09
【问题描述】:

我尝试使用非常简单的活动使用 google maps android v2 进行演示,只需从 google 页面复制代码: https://developers.google.com/maps/documentation/android/start#adding_the_api_key_to_your_application

活动:

package com.example.mapdemo;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

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

布局:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/map"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  class="com.google.android.gms.maps.MapFragment"/>

我已经根据页面申请了一个api密钥并修改了我的androidmanifest.xml文件,就像这样:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.wenhai.driverschool"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <uses-permission android:name="android.permission.INTERNET" />

    <!-- add for map2 -->
    <permission
        android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <!-- External storage for caching. -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- Maps API needs OpenGL ES 2.0. -->
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyDVAF4WaVSVRDKJx87It8OSFP5txQcPabc" />

        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

我还在 Eclipse 中将我的应用程序引用到 google-play-services_lib。

但每次,logcat 中的错误报告如下:

2-05 16:22:53.609: E/AndroidRuntime(21623): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wenhai.driverschool/com.wenhai.driverschool.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.os.Looper.loop(Looper.java:137)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread.main(ActivityThread.java:4441)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at java.lang.reflect.Method.invokeNative(Native Method)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at java.lang.reflect.Method.invoke(Method.java:511)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at dalvik.system.NativeStart.main(Native Method)
12-05 16:22:53.609: E/AndroidRuntime(21623): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:255)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Activity.setContentView(Activity.java:1835)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at com.wenhai.driverschool.MainActivity.onCreate(MainActivity.java:11)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Activity.performCreate(Activity.java:4465)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
12-05 16:22:53.609: E/AndroidRuntime(21623):    ... 11 more
12-05 16:22:53.609: E/AndroidRuntime(21623): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.MapFragment: make sure class name exists, is public, and has an empty constructor that is public
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Fragment.instantiate(Fragment.java:581)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Fragment.instantiate(Fragment.java:549)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Activity.onCreateView(Activity.java:4235)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
12-05 16:22:53.609: E/AndroidRuntime(21623):    ... 20 more
12-05 16:22:53.609: E/AndroidRuntime(21623): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.MapFragment
12-05 16:22:53.609: E/AndroidRuntime(21623):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
12-05 16:22:53.609: E/AndroidRuntime(21623):    at android.app.Fragment.instantiate(Fragment.java:571)
12-05 16:22:53.609: E/AndroidRuntime(21623):    ... 23 more

我不知道这是什么原因。

如果我将google-play-services.jar添加到我的项目中,它会报告另一个错误:

12-05 16:34:23.269: E/AndroidRuntime(22638): FATAL EXCEPTION: main
12-05 16:34:23.269: E/AndroidRuntime(22638): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.Activity.onCreateView(Activity.java:4242)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:255)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.Activity.setContentView(Activity.java:1835)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.wenhai.driverschool.MainActivity.onCreate(MainActivity.java:11)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.Activity.performCreate(Activity.java:4465)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.os.Looper.loop(Looper.java:137)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at android.app.ActivityThread.main(ActivityThread.java:4441)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at java.lang.reflect.Method.invokeNative(Native Method)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at java.lang.reflect.Method.invoke(Method.java:511)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
12-05 16:34:23.269: E/AndroidRuntime(22638):    at dalvik.system.NativeStart.main(Native Method)

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 我在使用 MapView 时遇到了同样的错误。我添加了库,并按照此页面 developers.google.com/maps/documentation/android/start 中的描述完成了所有操作,但所有这些对我来说都没用。
  • 同样的错误..任何解决方案...
  • 我遇到了同样的错误,还没有找到任何好的解决方案:(
  • 查看这些步骤,因为我猜它尚未解决techhomeblog.wordpress.com/2013/02/23/…
  • 尝试在 Eclipse 中右键单击您的项目,选择 Android 工具 > 添加支持库。就我而言,它是从 ActionBarSherlock 中提取的旧版本。

标签: android noclassdeffounderror runtimeexception


【解决方案1】:

在 IntelliJ IDEA 中(针对 IntelliJ 12 更新):

  1. 创建一个包含class dummy {} 的文件~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/src/dummy.java。
  2. 文件->导入模块-> ~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib
  3. 从现有源创建模块
  4. 下一步->下一步->下一步->下一步->完成
  5. 文件->项目结构->模块->YourApp
  6. +->Module Dependency->Google-play-services_lib(+ 按钮在对话框的右上角。)
  7. +->罐子或目录->~/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar
  8. 使用上/下箭头将&lt;Module source&gt;移动到列表底部。

如果你愿意,你可以删除dummy.java。

编辑:使用了一段时间后,我发现有一个小缺陷/错误。 IDEA 有时会抱怨无法打开google-play-services_lib 目录中的.iml 项目文件,尽管事实上您从未告诉它那里有一个项目。如果发生这种情况,重建项目可以解决问题,至少在它恢复之前是这样。

【讨论】:

  • 嗨,我在Eclipse IDE 中找不到File &gt; Import Module 选项。请帮助我...
  • 这是针对高级IDE“IntelliJ IDEA”的。
  • 感谢您的回答!但是我在项目中添加模块和jar依赖就足够了,一切正常!
  • 对于 Intellij 12 中的第 6 步,+ 按钮位于第三个窗格下方的左下方。
  • 您不再需要添加虚拟文件,因为 Google Play 服务库已更新为“官方虚拟文件”以支持“某些 IDE”(即他们对 IntelliJ 和 Android Studio 进行了修复) .
【解决方案2】:

更新

请关注 Commonsware MapV2 代码 sn-ps 以获得更好的理解。

(出现在综合版中)

https://github.com/commonsguy/cw-omnibus/tree/master/MapsV2

在我的最后,跟随 sn-p 工作正常。我选择使用SupportMapFragment。

别忘了将google-play-services.jar添加到您的项目中。

MainActivity.java

package com.example.newmapview;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.SupportMapFragment;

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SupportMapFragment fragment = new SupportMapFragment();
        getSupportFragmentManager().beginTransaction()
                .add(android.R.id.content, fragment).commit();
    }
}

ma​​nifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.newmapview"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />

    <permission
        android:name="com.example.newmapview.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.example.newmapview.permission.MAPS_RECEIVE" />
    <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-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.newmapview.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="XXXXX" />
    </application>

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

</manifest>

这是结果

希望这会有所帮助。

【讨论】:

  • 嗨,Vipul Shah,谢谢。我喜欢来自 concole 的消息:[2012-12-06 10:20:26 - google-play-services_lib] 找不到 google-play-services_lib.apk!我不知道这个apk丢失是否导致我的错误。你能告诉我如何引用 google-play-services.jar。只需像下面的链接一样添加它:developer.android.com/intl/zh-CN/tools/projects/…。或者像下面这样在eclipse中添加它:Propertyes->java Build Path->Projects,添加google-play-services_lib项目。哪一个在你身边?谢谢。
  • @mmm2006 我担心你可能在安卓模拟器上运行这个应用程序。我不确定,但你可能会遇到这个错误,因为模拟器上没有 Play 商店应用程序。在实际设备上试试。
  • 事实上,我在手机中运行它。一部索尼手机。
  • 嗨 Vipul,你能告诉我,如何使用 MapFragment 在地图上显示我的标记?我有一个纬度和经度列表,我想在地图上显示它们,我尝试了 MapView 但对我不起作用,所以我不能使用 ItemizedOverlay,MapFragment 工作,所以如何在 MapFragment 上显示多个标记。如果可能,请提供一个包含有效代码的链接。
  • @VipulShah:你是摇滚。你能告诉我为什么会出现这个错误,因为在它工作之前我已经开发了一些教程 ---> dj-android.blogspot.in/2013/02/… 现在相同的代码不起作用。跨度>
【解决方案3】:

尝试将您的布局替换为:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/map"
       android:name="com.google.android.gms.maps.SupportMapFragment"
       android:layout_width="wrap_content"
       android:layout_height="match_parent" />

11岁以下需要使用SupportMapFragment for API!

奥雷尔

【讨论】:

  • 对此很抱歉,但它也不能代替我。这次报错:Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.SupportMapFragment: 确保类名存在,是公开的,并且有一个公开的空构造函数。我可以在 jar 中找到 SupportMapFragment,但它无法工作。我不知道原因。
  • 嗯,看来您需要这样做: 1. 在Android SDK Mananger 上下载Google Play Services SDK。 2、在Eclipse中导入项目库。 3. 将库添加到您的项目中。 4. 确保您的项目中有 android-support-v4.jar(也可在 Android SDK 管理器中找到)。 5. 创建一个片段并添加名称 ('class="com.google.android.gms.maps.MapFragment"/>' for SDK >= 11 and 'class="com.google.android.gms.maps.MapFragment "/>' 用于 SDK
  • 好的。我发现我必须按照本指南来推荐谷歌播放服务。 developer.android.com/intl/zh-CN/tools/projects/…。但是谷歌提供的例子现在可以工作了。 :(
  • 知道什么是 View Equivalent to the Framgament 将其放入片段 xml 文件中?
  • @mmm2006:你需要扩展“FragmentActivity”而不是“Activity”然后它应该可以工作并且不会抛出异常..
【解决方案4】:

我遇到了同样的问题,我花了两天时间才找到适合我的解决方案:

  1. 删除项目google-play-services_lib(右键项目删除)
  2. 删除包含 Google 地图演示的项目(在我的例子中为 MainActivity)(如果有)
  3. 将项目 google-play-services_lib(extras\google\google_play_services\libproject\google-play-services_lib) 复制到您的工作区,然后将其作为常规项目导入(文件->导入->现有项目到工作区)
  4. 右键单击您的项目(要在其中加载地图)-> Android -> 添加(在库下)google-play-services_lib

你应该看到这样的东西:

注意:你不应该有这样的东西(项目应该从你的工作区引用):

我认为问题在于两个项目引用了同一个库

【讨论】:

  • 我将google play服务添加为Java构建路径库,但需要在Android/Library下添加
【解决方案5】:

试试这个

http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject

我刚刚添加了google服务的项目,在我的项目属性中添加了引用->Android

【讨论】:

  • 这对我来说是关键的修复,上面的其他答案都没有帮助。这里的区别实际上是非常微妙的——我是通过“Java Build Path”将它添加为一个依赖项目,而实际上我应该通过“Android”菜单来添加它。我已将该信息添加到我的其他答案之一:stackoverflow.com/questions/13733911/…
【解决方案6】:
  1. 现在demo可以关注this link:
  2. 例如demo,也可以:

在项目的 libs 目录中添加两个 jar。按照以下信息。特别是,我认为您需要:

  • 导入“google-play-services_lib”项目的实际源代码并将其链接为 Android 库。
    • 通过项目 -> 属性 -> Android -> 库,添加 -> google-play-services_lib 执行此操作(您可以右键单击您的项目并选择属性,然后选择 Android)。
    • 不要通过“Java 构建路径”为您的项目添加它作为依赖项目,这对我不起作用。
  • 将 google-play-services.jar 和 android-support-v4.jar 添加到示例项目中的“libs”文件夹中,并在“构建路径->配置构建路径”中将它们添加为“外部外部 JAR”- > 图书馆”。

我发现第二步是必要的,因为我在尝试使用示例代码时遇到了与您完全相同的错误。第一步是避免在我的真实项目中出现 com.google.android.gms.R$styleable 中的 NoClassDefFoundError。

在示例代码运行之前,我还需要执行干净构建并从设备上卸载应用程序(来自早期的测试尝试)。

非常感谢您的帮助。

【讨论】:

    【解决方案7】:

    也许你必须强调这一点:

    注意:Android 模拟器不支持 Google Play 服务 - 要使用 API 进行开发,您需要提供开发设备,例如 Android 手机或平板电脑。

    http://developer.android.com/google/play-services/setup.html

    您必须提供可以运行和调试应用的物理开发设备。不要使用模拟器。不会工作。

    【讨论】:

    • 天哪!为什么这个注释在主页上很少,而在每一页上都不是大红色?我几乎一整天都在试图让它运行!!!!
    • Play Services 现在可在运行 Android v4.2.2 或更高版本的模拟器上使用。
    【解决方案8】:

    在您的MainActivity 中(或在您想要放置 v2 地图的每个活动中)您必须扩展 FragmentActivity 或 Activity 或者您想使用 SupportMapFragment 或只是 MapFragment。仅当您的目标是 API 12 及更高版本时才使用 MapFragment 类。否则,请使用SupportMapFragment。这是一个微妙的差异,但它会产生错误。

    【讨论】:

      【解决方案9】:

      由于 Google 地图现在被包裹在 Fragments 下,因此从 FragmetActivity 扩展您的 Activity 而不仅仅是 Activity 并确保如果您使用“supportMapFragment”然后您是从 FragmetActivity 导入 Fragment strong>仅支持软件包。

      【讨论】:

      • Google 应该真正修复基本示例以使用SupportMapFragment。没有它就不行……
      【解决方案10】:

      在我的 Intellij Idea 项目中,我必须将 google-play-services_lib 和 google-play-services.jar 添加到项目中。并在 google-play-services_lib 项目中添加 google-play-services.jar 。在那之后,如果你做了所有事情,描述了here,对,你的应用程序应该可以工作了。

      【讨论】:

      • 你用什么分类的目录(类、jar目录、源码等)?
      • 在 Intellij Idea 中,我将 google-play-services_lib 添加为模块。更重要的是,Intellij Idea 无法将其识别为模块,因为 src 文件夹是空的。您应该将带有任何代码的 java 文件添加到 src 文件夹中,然后从现有源创建模块并将其添加到项目结构中的项目中。然后清除java文件。
      【解决方案11】:

      这有点困难,因为它在以前的 API 中有所不同,但我找到了解决方案。谷歌说要做什么here;根据我们需要com.google.android.gms 类的问题,因此有必要设置google play services,这只是一个库,我们必须像link 这样将其添加到我们的项目中。导入项目库google-play-services_lib 的副本而不是 sdk 文件夹中的副本非常重要。完成后,Google 的教程就完美了。

      【讨论】:

      【解决方案12】:

      除了前面提到的许多事情之外,对我来说,在 Order 和 Export 中标记 .jar 也很重要。据我所知,它通常不被提及,但对我来说至关重要。

      【讨论】:

        【解决方案13】:

        与此建议有关:https://stackoverflow.com/a/20215481/3080835

        我还必须将此添加到清单中的Application 元素:

        <meta-data 
                   android:name="com.google.android.gms.version" 
                   android:value="@integer/google_play_services_version" />
        

        而且效果很好。

        【讨论】:

          【解决方案14】:

          在 build.gradle 中添加这个依赖

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

          现在可以了

          <?xml version="1.0" encoding="utf-8"?>
          <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">
          
              <fragment
                  android:id="@+id/map"
                  android:name="com.google.android.gms.maps.MapFragment"
                  android:layout_width="match_parent"
                  android:layout_height="388dp"
                  android:layout_weight="0.40" />
          </LinearLayout>
          

          【讨论】:

            【解决方案15】:

            要处理与 Drive 相关的导入,您需要来自 Google Drive SDK 的几个 jar。有一些较大的,因此您可能需要单独添加它们以适合您的应用。

            如果这不能解决com.google.android.gms.* imports,the Google Play Services add-on needs to be installed (from Extras -&gt; Google Play Services in the SDK Manager) and google-play-services.jar needs to be added to your build path.

            编辑:

            在这种情况下,需要以下罐子:

            google-api-services-drive-v2-rev1-1.7.2-beta.jar

            google-http-client-1.10.3-beta.jar

            google-http-client-android2-1.10.3-beta.jar

            google-oauth-client-1.10.1-beta.jar

            google-api-client-android2-1.10.3-beta.jar

            google-api-client-1.10.3-beta.jar

            【讨论】:

              【解决方案16】:

              我在装有 2.3.4 Android 的 LG-E730 上遇到了同样的问题。 在我在手机上更新 Google Play Service 之前出现错误。

              【讨论】:

                【解决方案17】:

                不要忘记实际构建 google-play-services_lib!这就是为什么它显示“找不到 google-play....apk”。对我来说,在 Eclipse 上,不需要其他技巧,而是从 Android 子菜单引用项目,而不是从 Java 构建路径或项目引用或其他任何东西。没有手动放置的罐子,我实际上不需要任何东西。

                【讨论】:

                  【解决方案18】:

                  在 Eclipse 中,需要为 google play 服务创建一个单独的项目,并将其作为一个 lib 从您的 Android 项目中引用,而不是简单地将 jar 添加到其中。在我的电脑中,我直接从 D:\adt-bundle-windows-x86-20130219\sdk\extras\google\google_play_services\libproject\google-play-services_lib 导入了 google play services Eclipse 项目并将其设置为 Lib 项目,所以我可以从我的 Android 项目中引用它。

                  【讨论】:

                    【解决方案19】:

                    在同一个教程中说明

                    请注意,下面的代码仅用于测试您的 面向 Android API 12 或更高版本的应用程序中的设置

                    只需将您的最低 SDK 版本更改为 12 即可使用

                    <uses-sdk
                            android:minSdkVersion="8"
                            android:targetSdkVersion="15" />
                    

                    尚未尝试 Aurel 针对旧版本 API 的解决方法。

                    【讨论】:

                      【解决方案20】:

                      我认为值得一提的是(在我花了一个多小时拔掉头发之后),如果您使用 MapFragment,则不能使用 FragmentActivity(SupportMapFragment 在这种环境下可以正常工作)。我正准备放弃它。

                      【讨论】:

                        【解决方案21】:

                        第一步 http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject 第二步 http://developer.android.com/google/play-services/setup.html 在那个页面上它有一个注释,但我们没有注意

                        注意:您应该引用已复制到源代码树的库的副本——您不应引用 Android SDK 目录中的库。

                        但我认为这不是一个好的记录方式:)

                        【讨论】:

                          【解决方案22】:

                          这可能对某些人有所帮助。我有两个项目,一个是谷歌演示的副本,效果很好。另一个我复制到现有项目中,我根本无法运行它。在第二次失败中,我收到了上述错误消息。

                          我的问题是由于未启用库,即使我重新构建、导入多次等。右键单击项目 -> 属性 -> Java 构建路径 -> 订单和导出选项卡。在失败的项目中,未选中“Android Private Libraries”选项卡。

                          一旦我启用它,项目就可以正常工作了。

                          【讨论】:

                            【解决方案23】:

                            我拥有上面每个人所说的一切,并通过简单地调用 super.onCreate(savedInstanceState); 作为 oncreate 方法中的第一条指令;在它是方法的最后一行之前。 :| 浪费了一整天。

                            【讨论】:

                              【解决方案24】:

                              我遇到了这个问题,我只是更新了 Google Play 服务,并确保您将 google-play-service-lib 项目添加为依赖项,它现在可以在没有任何代码更改的情况下工作,但我仍然收到“Google Play 服务资源未找到。请检查您的项目配置以确保包含资源。”但这只发生在您设置了 setMyLocationEnabled(true) 时,有人知道为什么吗?

                              【讨论】:

                                【解决方案25】:

                                我没有得到真正的解决方案,但我在做这些事情后解决了它:
                                - 导入 google-play-services_lib 时勾选“将项目复制到工作区”
                                - 不要将 minSdkVersion 设置为低于 13
                                - 如果主题出现错误,请尝试将布局主题更改为任何系统主题
                                - 从头开始​​重新创建您的项目,或者如果您从某个地方获得它,则恢复所有内容

                                【讨论】:

                                  【解决方案26】:

                                  我遇到了同样的问题,只是从 SDK 安装了播放服务,所有问题都消失了。

                                  【讨论】:

                                    【解决方案27】:

                                    我在活动中写了
                                    import com.google.android.gms.maps.SupportMapFragment;

                                    Eclipse 给了我红色图标 > 点击 > 修复项目设置.. > 添加存档 google-play-services.jar

                                    终于成功了!!

                                    【讨论】:

                                      【解决方案28】:

                                      将 Google Play 服务添加到您的项目中

                                      使 Google Play 服务 API 可用于您的应用:

                                      按照此链接中的步骤操作:http://developer.android.com/google/play-services/setup.html#Setup

                                      【讨论】:

                                        【解决方案29】:

                                        我在 Windows 7 64 位机器上使用 Android SDK for x86 时遇到了这个问题。我下载了 Android SDK 64 位版本,让 Eclipse 在 Window > Preferences > Android > SDK location 中看到它,问题停止发生。

                                        【讨论】:

                                          【解决方案30】:

                                          请仔细阅读

                                          如果一切都与谷歌代码一样,那么请检查清单文件,在我的情况下,我添加了地理键和地图键,这就是发生异常的原因,

                                          注意 - 不要在清单文件中添加两个键删除映射键

                                          meta-data
                                                  android:name="com.google.android.maps.v2.API_KEY"
                                                  android:value="@string/google_maps_key"/>
                                          

                                          添加此代码。

                                           <meta-data
                                                  android:name="com.google.android.geo.API_KEY"
                                                  android:value="@string/auto_location"/>
                                          
                                           <meta-data
                                                  android:name="com.google.android.gms.version"
                                                  android:value="@integer/google_play_services_version"/>
                                          

                                          【讨论】:

                                            猜你喜欢
                                            • 2022-01-03
                                            • 2016-06-09
                                            • 2020-10-26
                                            • 2016-11-22
                                            • 2016-02-29
                                            • 2017-01-29
                                            • 2020-08-30
                                            • 2011-02-28
                                            • 2021-11-26
                                            相关资源
                                            最近更新 更多