2016-05-30 11 views
2

Ich möchte PlaceAutocompleteFragment in Meine Anwendung verwenden.PlaceAutocompleteFragment funktioniert nicht auf Android 5.0 und höher

ich erfolgreich umgesetzt PlaceAutocompleteFragment und es funktioniert gut. (In Samsung S4 und HTC Desire).

Aber wenn ich überprüft diese Funktionalität in Android 5.0 (Mi4i) und Android 5.1.1 (Samsung Galaxy Note 10.1) und Android 6.0 (Moto G Turbo) App ist abgestürzt ....

Ich verwende unten Code in Fragment, die ist, implementierenPlaceSelectionListener.

In XML-Layout-Datei.

<fragment 
     android:id="@+id/autocomplete_fragment" 
     android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

logcat

Schwerwiegende Ausnahme: main Prozess: com.organization.project, PID: 11635 java.lang.NullPointerException: Versuch virtuelle Methode ‚aufzurufen Hohlraum com.google .android.gms.location.places.ui.PlaceAutocompleteFragment.setOnPlaceSelectedListener (com.google.android.gms.location.places.ui.PlaceSelectionListener) ' für eine Nullobjekt-Referenz bei com.organization.project.fragments.FragmentSearchPlace.onCreateView (FragmentSearchPlace.java:39) bei android.app.Fragment.performCreateView (Fragment.java:2053) bei android.app.FragmentManagerImpl.moveToState (FragmentManager.java : 894) bei android.app.FragmentManagerImpl.moveToState (FragmentManager.java:1067) bei android.app.BackStackRecord.run (BackStackRecord.java:839) bei android.app.FragmentManagerImpl.execPendingActions (FragmentManager.java : 1454) bei android.app.FragmentManagerImpl $ 1.run (FragmentManager.java:447) bei android.os.Handler.handleCallback (Handler.java:739) bei android.os.Handler.dispatchMessage (Handler.java:95) bei android.os.Looper.loop (Looper.java:135) bei android.app.ActivityThread.main (ActivityThread.java:5234) bei java.lang.reflect.Method.invoke (native Methode) bei java.lang.reflect.Method.invoke (Method.java:372) um com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:909) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:704)

Hinzugefügt unten Abhängigkeiten in Gradle-Datei.

compile 'com.android.support:appcompat-v7:23.3.0' 
compile 'com.android.support:design:23.3.0' 
compile 'com.makeramen:roundedimageview:2.2.1' 
compile "com.android.support:cardview-v7:23.1.1" 
compile 'com.google.android.gms:play-services-maps:9.0.1' 
compile 'com.google.android.gms:play-services-location:9.0.1' 
+0

haben Sie eine Lösung gefunden? Ich habe das gleiche Problem beim Update von 'play-services-location: 8.x' nach 9.x – Markus

Antwort

2

Von Ihrem Stack-Trace, sieht es aus wie Sie die automatische Vervollständigung Fragment in einem anderen Fragment (FragmentSearchPlace) verschachtelt verwenden. Vielleicht würde die Verwendung von getChildFragmentManager() anstelle von getFragmentManager() funktionieren.

+0

' Aufruf erfordert API Level 17 (aktuelle min ist 15): android.app.Fragment # getChildFragmentManager'. Aber meine min sdk ist 15. Und ich möchte sdk 15 und Up unterstützen. –

+0

Hey, danke für den Hinweis auf getChildFragmentManager(). Es funktioniert gut, wenn ich API-Ebene ändere. Aber ich möchte API-Stufe 15. Gibt es eine Möglichkeit, dies zu tun? –

+0

Siehe hier: http://stackoverflow.com/questions/23640066/getchildfragmentmanager-and-support-libraries – AndrewR

0

Sie fügen kein Fragment zu einem anderen Fragment durch die Eigenschaft "name" in Ihrem Layout hinzu. Sie müssen verwenden:

autocompleteFragment = new SupportPlaceAutocompleteFragment(); 
FragmentTransaction transaction = getFragmentManager().beginTransaction();   
transaction.replace(R.id.fragme_autocomplete_destino,autocompleteFragment); 
transaction.commit(); 
Verwandte Themen