2013-07-03 41 views
0

我無法使用google map v2片段創建活動。自定義片段工作正常,這只是一個MapFragment的問題。MvvmCross與MapFragment

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

以下是錯誤:

mvx:Diagnostic: 36.27 Showing ViewModel TruckWashMapViewModel 
[0:] mvx:Diagnostic: 36.27 Showing ViewModel TruckWashMapViewModel 
07-03 17:24:51.184 I/mono-stdout(16230): mvx:Diagnostic: 36.27 Showing ViewModel TruckWashMapViewModel 
07-03 17:24:51.214 I/Choreographer(16230): Skipped 297 frames! The application may be doing too much work on its main thread. 
Resolved pending breakpoint at 'c:\_Application\BLUBCNMOBL\src\BLUBCNMOBL.Droid\Views\TruckWashMapView.cs:17,1' to OnCreate [0x00001]. 
[0:] mvx:Diagnostic: 40.71 Loading new ViewModel from Intent with Extras 
[0:] mvx:Diagnostic: 40.71 Loading new ViewModel from Intent with Extras 
07-03 17:24:55.629 I/mono-stdout(16230): mvx:Diagnostic: 40.71 Loading new ViewModel from Intent with Extras 
[0:] 
MvxBind:Error: 42.60 View type not found - fragment 
[0:] MvxBind:Error: 42.60 View type not found - fragment 
07-03 17:24:57.511 I/mono-stdout(16230): MvxBind:Error: 42.60 View type not found - fragment 

通過堆棧跟蹤翻翻進一步,它看起來就像是用API密鑰錯誤。但是我在AndroidManifest.xml中有我的API密鑰。

07-05 14:55:02.231 I/MonoDroid(31877): Caused by: java.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml 

AndroidManifest.xml中

<application android:icon="@drawable/logo" 
       android:debuggable="true" 
       android:enabled="true" 
       android:persistent="false" 
       android:allowClearUserData="true"> 
     <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="xxx" /> 

回答

1

我應該發佈我的整個AndroidManifest.xml。問題是我在清單中有2個Application節點。

+0

哇。這也打動了我 - 謝謝你。 – wgraham

+0

同一個盲人混蛋在這裏:) –

0

發生的任何片段這個問題?或只是爲了一個地圖片段?

你可以使用ViewGroup解決這個問題並動態加載你的片段嗎?

作爲參考,所述N + 1個視頻對片段包括<fragment>標籤 - N = 26 - 這表明被加載片段並用的NuGet包被記錄3.0.8.1

參見

如果它的所有片段被打破現在,那麼我想擁有的東西自3.0.8.1版本以來破裂 - 在這種情況下,報告項目的問題和/或修復。

如果這個問題是特定於你的地圖導入,那麼我想你將不得不做更多的調試和調查才能解決問題。

+0

我在問題中添加了更多信息。這隻發生在Google地圖片段中,並且我發現堆棧跟蹤中有更多信息說沒有找到API密鑰。 –

+0

謝謝。我不知道mvx會干擾api密鑰查找 - 因此我無法再對此進行評論。注意 - 我並不是說這與MvvmCross沒什麼關係 - 但我想說,你的新更新表明mvvmCross更像是旁觀者(我們可能在錯誤的時間站在錯誤的地方) ...但目前沒有真正的線索,關於如何或爲什麼或在哪裏放置正確的地方!)。希望能夠理解Xamarin.Android-Java-GooglePlay關係的人能夠提供幫助。祝你好運! – Stuart

0

如果您正在使用MvvmCross的未修改版本(3.0.8.1),那麼你需要使用的,而不是com.google.android.gms.maps.MapFragment

com.google.android.gms.maps.SupportMapFragment嘗試使用它來顯示地圖片段

<fragment 
    class="com.google.android.gms.maps.SupportMapFragment" 
    android:id="@+id/mapfragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

我觀察到與API密鑰類似的問題。我是由Google API控制檯中的錯誤設置導致的。實際上有兩種服務可供選擇「Google Maps Android API v2」和「Google Maps API v2」。您能否在服務標籤中確認您確實已啓動「Google Maps Android API v2」服務。

+0

你是對的,我使用了錯誤的MapFragment。當我離開代碼這樣我得到一個地圖片段錯誤。現在我將它切換到SupportMapFragment,我收到了API密鑰錯誤。更新了問題,謝謝。 –