2013-03-08 21 views
3

新到Android等試圖獲取地圖V2的Android演示工作

所以我建議這個演示: http://dj-android.blogspot.in/2013/02/android-google-map-v2-part-1.html

我跟着它的事,但一定是出了問題。

...

  • 工作區我有我自己的項目:
  • 這裏面的項目:在 「利布斯」 我已經加入 「Android的支持,v4.jar」
  • 內這個項目:在Android Depencides我有「android-support-v4.jar」
  • 在這個項目裏面:在參考資料庫我有「google-play-services.jar」
  • 這個項目裏面:In參考ES圖書館我有 「Android的支持,v4.jar」

...

  • 工作區我有谷歌,播放services_lib作爲一個項目:
  • 裏面這個項目:在「Libs」中我有「google-play-services.jar」
  • 這個項目裏面:在「Libs」中我有「google-play-services.jar.properties」
  • 這個項目裏面:在「Android Dependencies 「我有」google-play-services.ja R」

...

當我運行上面的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 

activity_main.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密鑰是好的。請參閱: Maps v2 API Key on Android

注2:

我的當前配置的一些截圖:

enter image description here enter image description here

如果你認爲我的問題的原因是,谷歌播放服務沒有正確安裝,我爲此創建了一個單獨的SO:Can not install google-play-services into Eclipse correctly (trying to get maps working)

+1

你能發佈整個錯誤信息嗎?通常在你發佈的一條線的下方以'由'引起' – ianhanniballake 2013-03-08 19:18:36

+0

Hereby添加完整日誌 – Tom 2013-03-08 23:32:28

回答

4

試試這個:

link

這是一個博客帖子我在創建一個谷歌地圖API V2寫道。

UPDATE:

enter image description here

我拍了一張照片從我工作的地圖項目。忽略崩潰報告服務庫如acra,flurry,bugsense和crittercism。那麼你的項目看起來是一樣的嗎?

你有google-play-services_lib.jar在你的Android依賴關係文件夾?

+0

雖然我無法看到關於如何加載XML的類代碼,但我嘗試了它,但我可以發生同樣的錯誤就像我原來的帖子一樣。我現在添加了完整的日誌。 – Tom 2013-03-09 00:18:49

+1

如果仔細看看帖子,你會看到:「8.現在創建一個從」FragmentActivity「擴展的Activity,爲這個活動創建一個XML佈局文件,並將其設置爲該活動的內容視圖,在佈局中編寫以下內容:「所以對於這個類你需要做的是創建一個簡單的活動來擴展FragmentActivity,並將描述的佈局設置爲setContentView(R.layout.maplayout) – 2013-03-09 14:21:19

+0

Emil:已經嘗試了很多次,我很害怕:( – Tom 2013-03-09 20:01:11

4

In References Libraries I have added "google-play-services.jar"

這是不正確的。請刪除。然後,將Play Services Android庫項目導入到Eclipse環境中,並將其附加到您的項目中。

報價the documentation

Copy the /extras/google/google_play_services/libproject/google-play-services_lib library project into the source tree where you maintain your Android app projects. If you are using Eclipse, import the library project into your workspace. Click File > Import, select Android > Existing Android Code into Workspace, and browse to the copy of the library project to import it.

To set up a project to use the Google Play services SDK... Reference the library project in your Android project. See the Referencing a Library Project for Eclipse or Referencing a Library Project on the Command Line for more information on how to do this.

+0

謝謝。然而,這並沒有改變錯誤:((我有點困惑爲什麼谷歌播放服務.jar已成爲工作空間的一部分,不能像支持庫一樣的項目的一部分。但現在我已經試過了方式!) – Tom 2013-03-08 23:30:53

+1

@Tom:「我有點困惑,爲什麼google-play-services.jar是工作空間的一部分,不能像支持庫一樣成爲項目的一部分。」 - 因爲它不僅僅是一個JAR。它是一個Android庫項目,其中包括Android資源。 – CommonsWare 2013-03-08 23:33:05

+0

感謝您的澄清。有道理:) – Tom 2013-03-09 00:20:35