有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java 安卓 studio项目街景未加载

我想在我的安卓上加载streetview,主要活动已经完成。我犯了一个错误:

E/Google Maps Android API: The Google Maps Android API Street View service has been disabled for this application. This might be because of an incorrectly configured project, or an invalid API key. See the Google API console: 

但在我的背后是:

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.安卓.gms.maps.StreetViewPanorama.setPosition(com.google.安卓.gms.maps.model.LatLng, com.google.安卓.gms.maps.model.StreetViewSource)' on a null object reference

我的主要活动:

package com.example.street;

import 安卓x.appcompat.app.AppCompatActivity;

import 安卓.os.Bundle;
import 安卓.view.View;
import 安卓.widget.Toast;

import com.google.安卓.gms.maps.OnStreetViewPanoramaReadyCallback;
import com.google.安卓.gms.maps.StreetViewPanorama;
import com.google.安卓.gms.maps.SupportMapFragment;
import com.google.安卓.gms.maps.SupportStreetViewPanoramaFragment;
import com.google.安卓.gms.maps.model.LatLng;
import com.google.安卓.gms.maps.model.StreetViewPanoramaCamera;
import com.google.安卓.gms.maps.model.StreetViewPanoramaOrientation;
import com.google.安卓.gms.maps.model.StreetViewSource;
import com.google.安卓.material.floatingactionbutton.FloatingActionButton;

public class MainActivity extends AppCompatActivity implements OnStreetViewPanoramaReadyCallback {
private StreetViewPanorama streetViewPanorama;
private boolean secondlocation = false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        SupportStreetViewPanoramaFragment streetViewPanoramaFragment = (SupportStreetViewPanoramaFragment)getSupportFragmentManager().findFragmentById(R.id.googlemapstretview);
        streetViewPanoramaFragment.getStreetViewPanoramaAsync(this);
        FloatingActionButton fab= findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                secondlocation =! secondlocation;
                onStreetViewPanoramaReady(streetViewPanorama);
            }
        });
    }

    @Override
    public void onStreetViewPanoramaReady(StreetViewPanorama streetViewPanorama) {
        streetViewPanorama = streetViewPanorama;
        if (secondlocation){
            streetViewPanorama.setPosition(new LatLng(51.52887,-0.1726073), StreetViewSource.OUTDOOR);

        }else {
            streetViewPanorama.setPosition(new LatLng(51.52887,-0.1726073));
        }
        streetViewPanorama.setStreetNamesEnabled(true);
        streetViewPanorama.setPanningGesturesEnabled(true);
        streetViewPanorama.setZoomGesturesEnabled(true);
        streetViewPanorama.setUserNavigationEnabled(true);
        streetViewPanorama.animateTo(
                new StreetViewPanoramaCamera.Builder().orientation(new StreetViewPanoramaOrientation(20,20)).zoom(streetViewPanorama.getPanoramaCamera().zoom).build(),2000);
        streetViewPanorama.setOnStreetViewPanoramaCameraChangeListener(panoramachangelistner);
    }
    private StreetViewPanorama.OnStreetViewPanoramaCameraChangeListener panoramachangelistner = new StreetViewPanorama.OnStreetViewPanoramaCameraChangeListener() {
        @Override
        public void onStreetViewPanoramaCameraChange(StreetViewPanoramaCamera streetViewPanoramaCamera) {
            Toast.makeText(MainActivity.this,"Location updated", Toast.LENGTH_SHORT).show();

        }
    };
}

我遵循了一个教程,但他没有犯这个错误。如果有问题或其他教程需要导入街景。旧教程:https://www.youtube.com/watch?v=NLBCQwNY1Bo


共 (0) 个答案