3

安卓新手等。

所以我被推荐了这个演示: http ://dj-android.blogspot.in/2013/02/android-google-map-v2-part-1.html

我跟着它,但一定出了什么问题。

...

  • 工作区中,我有自己的项目:
  • 在这个项目中:在“Libs”中,我添加了“android-support-v4.jar”
  • 在这个项目中:在 Android 依赖我有“android-support-v4.jar”
  • 在这个项目中:在参考库中我有“google-play-services.jar”
  • 在这个项目中:在参考库中我有“android-support-v4.jar”

...

  • 工作区中,我将 google-play-services_lib 作为项目:
  • 在这个项目中:在“Libs”中,我有“google-play-services.jar”
  • 在这个项目中:在“Libs”中,我有“google-play-services.jar.properties”
  • 在这个项目中:在“Android Dependencies”中,我有“google-play-services.jar”

...

当我在 SGII v4.1.2 上运行上述项目时,我得到黑屏,然后是 crasj,然后是错误:

03-09 00:28:49.957: E/AndroidRuntime(20309): FATAL EXCEPTION: main
03-09 00:28:49.957: E/AndroidRuntime(20309): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mapstest/com.example.mapstest.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.app.ActivityThread.access$700(ActivityThread.java:140)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.os.Looper.loop(Looper.java:137)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.app.ActivityThread.main(ActivityThread.java:4921)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at java.lang.reflect.Method.invokeNative(Native Method)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at java.lang.reflect.Method.invoke(Method.java:511)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at dalvik.system.NativeStart.main(Native Method)
03-09 00:28:49.957: E/AndroidRuntime(20309): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:313)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.app.Activity.setContentView(Activity.java:1924)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at com.microsystools.mapstest.MainActivity.onCreate(MainActivity.java:17)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.app.Activity.performCreate(Activity.java:5206)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
03-09 00:28:49.957: E/AndroidRuntime(20309):    ... 11 more
03-09 00:28:49.957: E/AndroidRuntime(20309): Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.SupportMapFragment: make sure class name exists, is public, and has an empty constructor that is public
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.support.v4.app.Fragment.instantiate(Fragment.java:401)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.support.v4.app.Fragment.instantiate(Fragment.java:369)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
03-09 00:28:49.957: E/AndroidRuntime(20309):    ... 21 more
03-09 00:28:49.957: E/AndroidRuntime(20309): Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment
03-09 00:28:49.957: E/AndroidRuntime(20309):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
03-09 00:28:49.957: E/AndroidRuntime(20309):    at android.support.v4.app.Fragment.instantiate(Fragment.java:391)
03-09 00:28:49.957: E/AndroidRuntime(20309):    ... 24 more

活动主.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  

   xmlns:tools="http://schemas.android.com/tools"  
   android:layout_width="match_parent"  
   android:layout_height="match_parent"  
   tools:context=".MainActivity" >  
   <fragment  
     android:id="@+id/fragment1"  
     android:layout_width="match_parent"  
     android:layout_height="match_parent"  
     class="com.google.android.gms.maps.SupportMapFragment" />  
 </RelativeLayout>  

MainActivity.Java

package com.example.mapstest;

import android.app.Activity;  
import android.os.Bundle;  
import android.support.v4.app.FragmentActivity;  
import android.app.Activity;
import android.view.Menu;  

  public class MainActivity extends FragmentActivity {  
       @Override  
       protected void onCreate(Bundle arg0) {  
            // TODO Auto-generated method stub  
            super.onCreate(arg0);  
            setContentView(R.layout.activity_main);  
       }  
  }    

注1:

你们相信这可能是与 API 密钥相关的问题吗?我将其用作 API 密钥:

HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH:HH;com.exampledomain.exampleproject
  • 注意结尾。那是对的吗?
  • 我必须编辑 keytool 的输出,所以不能 100% 确定 API 密钥是好的。请参阅: Android 上的 Maps v2 API 密钥

笔记2:

我当前配置的一些截图:

在此处输入图像描述 在此处输入图像描述

如果您认为我的问题的原因是未正确安装 Google Play 服务,我已经为此创建了一个单独的 SO:无法将 google-play-services 正确安装到 Eclipse 中(试图让地图正常工作)

4

2 回答 2

4

在参考库中,我添加了“google-play-services.jar”

这是不正确的。请删除它。然后,将 Play Services Android 库项目导入您的 Eclipse 环境,并将其附加到您的项目中。

引用文档

将 /extras/google/google_play_services/libproject/google-play-services_lib 库项目复制到您维护 Android 应用项目的源代码树中。如果您使用的是 Eclipse,请将库项目导入您的工作区。单击 File > Import,选择 Android > Existing Android Code into Workspace,然后浏览到库项目的副本以将其导入。

设置项目以使用 Google Play 服务 SDK... 在您的 Android 项目中引用库项目。有关如何执行此操作的更多信息,请参阅为 Eclipse引用库项目或在命令行上引用库项目。

于 2013-03-08T19:20:35.160 回答
4

试试这个:

关联

这是我写的关于创建 Google Map API V2 的博客文章。

更新:

在此处输入图像描述

我从我的工作地图项目中拍了一张照片。忽略崩溃报告服务库,如 acra、flurry、bugsense 和 crittercism。除了那些你项目看起来一样吗?

google-play-services_lib.jarAndroid 依赖项文件夹中有吗?

于 2013-03-08T19:51:37.197 回答