gpt4 book ai didi

java - Place Autocomplete Fragment 不适用于 Android 5.0 及更高版本

转载 作者:搜寻专家 更新时间:2023-11-01 07:49:20 24 4
gpt4 key购买 nike

我想在我的应用程序中使用 PlaceAutocompleteFragment

我成功实现了 PlaceAutocompleteFragment 并且工作正常。(在 Samsung S4 和 HTC Desire 中)。

但是当我在 Android 5.0 (Mi4i)Android 5.1.1 (Samsung Galaxy Note 10.1)Android 6.0 (Moto G Turbo) 中检查此功能时) 应用崩溃了....

我在 Fragment 中使用下面的代码,它是 implement PlaceSelectionListener

PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment) getFragmentManager().findFragmentById(R.id.autocomplete_fragment);
autocompleteFragment.setOnPlaceSelectedListener(this);

@Override
public void onPlaceSelected(Place place) {
Toast.makeText(getActivity(), "Place selection : " + place.getAddress(),
Toast.LENGTH_SHORT).show();
}

/**
* Callback invoked when PlaceAutocompleteFragment encounters an error.
*/
@Override
public void onError(Status status) {

Toast.makeText(getActivity(), "Place selection failed: " + status.getStatusMessage(),
Toast.LENGTH_SHORT).show();
}

在 XML 布局文件中。

<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" />

日志

FATAL EXCEPTION: main Process: com.organization.project, PID: 11635 java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.location.places.ui.PlaceAutocompleteFragment.setOnPlaceSelectedListener(com.google.android.gms.location.places.ui.PlaceSelectionListener)' on a null object reference at com.organization.project.fragments.FragmentSearchPlace.onCreateView(FragmentSearchPlace.java:39) at android.app.Fragment.performCreateView(Fragment.java:2053) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894) at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.app.BackStackRecord.run(BackStackRecord.java:839) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1454) at android.app.FragmentManagerImpl$1.run(FragmentManager.java:447) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5234) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)

在 Gradle 文件中添加了以下依赖项。

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'

最佳答案

从您的堆栈跟踪来看,您似乎正在使用嵌套在另一个 fragment (FragmentSearchPlace) 中的自动完成 fragment 。也许使用 getChildFragmentManager()而不是 getFragmentManager() 会起作用。

关于java - Place Autocomplete Fragment 不适用于 Android 5.0 及更高版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37526585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com