1

我對Android Dev相當新。試圖使用Google Android Map API v2獲取簡單的地圖。我不想在這裏做任何特別的事情......我會認爲我會在30分鐘或更短的時間內完成這項工作......兩天後我感到尷尬和沮喪,但我仍然陷入困境。精氨酸!我花了很多時間嘗試不同的事情,閱讀文檔,甚至試圖退回到v1地圖API ......沒有成功。膨脹谷歌地圖v2片段導致ClassNotFoundException /應用程序LBS意外停止

該應用程序在我的真實手機上立即崩潰,並顯示以下消息:「應用程序LBS意外停止」。

我看了很多帖子,仍然沒能找到我的問題,所以我希望有人能夠發現問題。

我爲Google's instructions創建了一個密鑰,並認爲我成功完成了此頁面上列出的其他步驟。

我在運行Android v2.2.1的手機上運行該應用程序。我的理解是v2 API不能在仿真器上運行......您必須使用真實的設備。希望Google能夠在不久的將來某個時候糾正這個問題。

這裏是LogCat ...它似乎是窒息的片段膨脹。

java.lang.RuntimeException: Unable to start activity \ 
     ComponentInfo{com.example.lbs/com.example.lbs.MainActivity}: \ 
     android.view.InflateException: Binary XML file line #2: \ 
     Error inflating class fragment 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
    at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:123) 
    at android.app.ActivityThread.main(ActivityThread.java:4627) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:521) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:651) 
    at dalvik.system.NativeStart.main(Native Method) 

Caused by: android.view.InflateException: Binary XML file line #2: \ 
     Error inflating class fragment 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:385) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:200) 
    at android.app.Activity.setContentView(Activity.java:1647) 
    at com.example.lbs.MainActivity.onCreate(MainActivity.java:11) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
    ... 11 more 

Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader 
     dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:\ 
     /data/app/com.example.lbs-2.apk] 
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:466) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:544) 
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 
    ... 19 more 

這裏是在MainActivity代碼:

package com.example.lbs; 
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.activity_main); 
    } 
} 

這裏是明顯的。請注意,在這裏有一些額外的東西是不需要的..我一直在嘗試各種各樣的東西,試圖讓這個簡單的應用程序工作。

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

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

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

    <uses-permission android:name="com.example.lbs.permission.MAPS_RECEIVE" /> 

    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission `enter code here`android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
    <!-- 
    The following two permissions are not required to use 
    Google Maps Android API v2, but are recommended. 
    --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <uses-library android:name="com.google.android.maps" /> 

    <activity 
     android:name="com.example.lbs.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="AIzaSyCC-v65frsK6-VZjHrEMqr0wyjorLuDXXX 
      " /> 
</application> 
<uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true"/> 
</manifest> 

這裏是佈局文件:

<?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" 
      android:name="com.google.android.gms.maps.MapFragment"/> 

回答

0

片段沒有出臺,直到Android 3.0的。但是,您可以在使用支持庫的早期版本中獲得對它的支持。請參閱更多信息here

+0

感謝除非我失去了一些東西,我不認爲這是問題。我已經在apps(LBS)Lib文件夾中安裝了android-support-v4.jar文件。即使如此,只是爲了確保我將Fragment import語句添加到鏈接中建議的MainActivity中。結果=完全相同的失敗。 – user2101068 2013-03-21 15:16:26

1

好吧,花了好幾天的時間試圖完成這項工作後,我終於在今天下午放棄了,幾乎重新開始了......我終於通過遵循本教程(http://mobisys.in/blog/2012/12/google-rolls-out-android-maps-api-v2/)在我的Android v2.2.1手機上獲得了這項工作)。

谷歌地圖是一個偉大的實用工具,但它不應該是這麼難使用...只是獲取API密鑰的過程是繁重的。

與谷歌的材料不同,本教程非常清晰,簡潔和準確。在閱讀本教程後,我花了30分鐘纔開始工作。那是在用了兩三天的時間纔想出Google資料。谷歌文檔的人應該看看這個教程,並模擬它。哇...它是多麼令人耳目一新。不知道他們的其他Android教程是否清晰,但如果是這樣的話,這將是我所有Android文檔的第一站。

+0

我認爲Google在Google地圖開發人員網站上記錄過程方面做得很好。通過提供應用程序包和keytool指紋獲取API密鑰並不那麼繁重。 – ddewaele 2013-05-28 06:24:31

+0

我認爲關於地圖/許可問題的問題/問題的數量本身就說明問題。 – user2101068 2013-05-29 15:39:01

0

MainActivity應該延伸FragmentActivity不活動

如果您使用的是支持庫,你應該使用

import android.support.v4.app.FragmentActivity; 
相關問題