我一直在搜寻所有与我的问题有关的帖子,但似乎都找不到答案。目前,我正在尝试使用带有位置和方向的Google地图启动一个项目。我的问题是,在我所有的努力之后,我无法解决消失的问题。地图上的其他所有内容均正常运行。我在build或log-cat上没有收到任何错误。
我尝试过的事情:
从android studio以及从云平台删除整个项目,然后从头开始。
确保已启用所有3个Api,例如适用于Android,位置和路线的Maps SDK。 (我已禁用并启用)
设置具有应用程序限制的凭据,而没有应用程序限制。
再次检查所有导入,sha1密码和API密钥等
这是我的xml:
<fragment
android:id="@+id/place_autocomplete_fragment"
android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
android:layout_width="match_parent"
android:layout_height="65dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toTopOf="@+id/linearLayout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/place_autocomplete_fragment" />
这是我的java:
public class MainActivity extends FragmentActivity implements OnMapReadyCallback,
GoogleApiClient.ConnectionCallbacks{
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
if (mapFragment != null) {
mapFragment.getMapAsync(this);
}
PlaceAutocompleteFragment placeAutocompleteFragment = (PlaceAutocompleteFragment)
getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);
placeAutocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
@Override
public void onPlaceSelected(Place place) {
map.clear();
map.addMarker(new MarkerOptions().position(place.getLatLng()).title(place.getName().toString()));
map.moveCamera(CameraUpdateFactory.newLatLng(place.getLatLng()));
map.animateCamera(CameraUpdateFactory.newLatLngZoom(place.getLatLng(), 19.0f));
}
@Override
public void onError(Status status) {
}
});
}
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
float zoomLevel = 19.0f;
LatLng test = new LatLng(35.008522 ,-85.321050);
map.addMarker(new MarkerOptions().position(test).title("test"));
map.moveCamera(CameraUpdateFactory.newLatLng(test));
map.moveCamera(CameraUpdateFactory.newLatLngZoom(test, zoomLevel));
}
@Override
public void onConnected(@Nullable Bundle bundle) {
}
@Override
public void onConnectionSuspended(int i) {
}
}