Я перестал пытаться реализовать это как MapView и переключился на MapAcitvity. Реализовать это намного проще, кажется, просто создайте "new-> Google-> Map Activity" в Android Studio
Я думаю, что проблема с моим подходом заключалась в том, что я не знал, куда поместить api ключ. хотя это не ошибка, связанная с этим ...
РЕДАКТИРОВАТЬ:
Вот решение / пример того, как я получил его на работу:
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapView mMap = findViewById(R.id.map);
mMap.onCreate(savedInstanceState);
mMap.getMapAsync(this);
}
@Override
public void onStart() {
MapView mMap = findViewById(R.id.map);
super.onStart();
mMap.onStart();
}
@Override
public void onResume() {
MapView mMap = findViewById(R.id.map);
super.onResume();
mMap.onResume();
}
@Override
public void onPause() {
MapView mMap = findViewById(R.id.map);
super.onPause();
mMap.onPause();
}
@Override
public void onStop() {
MapView mMap = findViewById(R.id.map);
super.onStop();
mMap.onStop();
}
@Override
public void onLowMemory() {
MapView mMap = findViewById(R.id.map);
super.onLowMemory();
mMap.onLowMemory();
}
@Override
public void onDestroy() {
MapView mMap = findViewById(R.id.map);
super.onDestroy();
mMap.onDestroy();
}
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onMapReady(final GoogleMap googleMap) {
mMap = googleMap;
LatLng Test = new LatLng(50, 9);
mMap.animateCamera(CameraUpdateFactory.newCameraPosition( new CameraPosition.Builder().target(Test).zoom(15.0f).build()),20000, null);
}
I не будет включать код xml, так как это просто fill_parent mapView, называемый «map».
Я поместил ключ API в AndroidManifest. xml вот так:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
Я думаю, вот и все. Спасибо за помощь и советы!