Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java getMapAsync错误_Java_Android_Google Maps_Android Fragments - Fatal编程技术网

Java getMapAsync错误

Java getMapAsync错误,java,android,google-maps,android-fragments,Java,Android,Google Maps,Android Fragments,当我试图调用它时,出现错误“无法解析符号getMapAsync”。我读过其他的帖子,但它们的代码也和我的一样。这就是: package barsoftware.suedtirolpointer; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.

当我试图调用它时,出现错误“无法解析符号getMapAsync”。我读过其他的帖子,但它们的代码也和我的一样。这就是:

package barsoftware.suedtirolpointer;

import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class Karte extends AppCompatActivity implements OnMapReadyCallback {

GoogleMap m_map;
boolean mapReady = false;

MarkerOptions Rieserfernerhütte;

MarkerOptions Dahoam;

MapFragment mapFragment = (MapFragment) getFragmentManager()
        .findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

static final CameraPosition SÜDTIROL = CameraPosition.builder()
        .target(new LatLng(46.470576, 11.339986))
        .zoom(8)
        .build();


@Override
public Resources getResources() {
    return super.getResources();
}

////////////////////////////// LAYOUT //////////////////////////////
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Get the view from activity_main.xml
    setContentView(R.layout.karte);

    //// UP BOOTON ////

    // Get a support ActionBar corresponding to this toolbar
    ActionBar ab = getSupportActionBar();

    // Enable the Up button
    ab.setDisplayHomeAsUpEnabled(true);

    //////////////////////////////////////////////
    //////////////// KARTEN POI'S ////////////////
    //////////////////////////////////////////////
    Rieserfernerhütte = new MarkerOptions()
            .position(new LatLng(46.5324, 12.0446))
            .title("Rieserfernerhütte");

    Dahoam = new MarkerOptions()
            .position(new LatLng(46.738886, 12.166471))
            .title("Dahoam");

}

@Override
public void onMapReady(GoogleMap map) {
    this.m_map = map;
    mapReady = true;
    m_map = map;
    m_map.addMarker(Rieserfernerhütte);
    m_map.addMarker(Dahoam);
    flyTo(SÜDTIROL);
}

private void flyTo(CameraPosition target){
    m_map.moveCamera(CameraUpdateFactory.newCameraPosition(target));
}


////////////////////////////////// MENU //////////////////////////////////
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_no_karte, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    if (id == R.id.menu_home) {
        Intent Home = new Intent(Karte.this,
                Start.class);
        startActivity(Home);
    }

    if (id == R.id.menu_karte) {

    }

    if (id == R.id.menu_teilnehmer) {
        Intent Teilnehmer = new Intent(Karte.this,
                Teilnehmer.class);
        startActivity(Teilnehmer);
    }

    if (id == R.id.menu_einstellungen) {
        Intent Einstellungen = new Intent(Karte.this,
                Einstellungen.class);
        startActivity(Einstellungen);
    }
    if (id == R.id.menu_update) {
        Intent Update = new Intent(Karte.this,
                Update.class);
        startActivity(Update);
    }
    if (id == R.id.menu_teilen) {
        Intent Teilen = new Intent(Karte.this,
                Teilen.class);
        startActivity(Teilen);
    }

    return super.onOptionsItemSelected(item);
}

}

如果有人知道或知道问题出在哪里,请回答。

这是因为您应该使用
SupportMapFragment
。修改xml片段代码:

<fragment
android:id="@+id/map"
android:layout_width="wrap_content"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"></fragment>

SupportMapFragment mapFragment=(SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.map)

然后,您可以拨打:


mapFragment.getmapsync(this)

这是因为您应该使用
SupportMapFragment
。修改xml片段代码:

<fragment
android:id="@+id/map"
android:layout_width="wrap_content"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"></fragment>

SupportMapFragment mapFragment=(SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.map)

然后,您可以拨打:


mapFragment.getmapsync(this)

声明中包含以下代码,而不是方法:

    mapFragment.getMapAsync(this);

尝试将其放在onCreate()方法中。

声明中包含以下代码,而不是方法:

    mapFragment.getMapAsync(this);

尝试将它放在onCreate()方法中。

我完成了,但getMapAsync仍然以红色突出显示,getChildFragmentManager也完成了,但getMapAsync仍然以红色突出显示,getChildFragmentManager也完成了