Подтвердить что ты не робот

Карты Google api v2 - Тип android.app.Fragment не может быть разрешен. Это косвенно ссылается на требуемые файлы .class

Здесь я нашел несколько вопросов по этому вопросу, но их ответы, похоже, не применимы к тому, что мой проект ссылается на библиотеку, содержащую класс. Здесь мой код:

 package com.demo.app;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;

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.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class Mapview extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        GPSTracker gps = new GPSTracker(Mapview.this);

        // check if GPS enabled     
        if(gps.canGetLocation()){

            double latitude = gps.getLatitude();
            double longitude = gps.getLongitude();

            // \n is for new line
            // Toast.makeText(getApplicationContext(), "Your Location is - \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show(); 
        }else{
            // can't get location
            // GPS or Network is not enabled
            // Ask user to enable GPS/network in settings
            gps.showSettingsAlert();
        }

        double latitude = gps.getLatitude();
        double longitude = gps.getLongitude();


        SupportMapFragment fragment = new SupportMapFragment();
        getSupportFragmentManager().beginTransaction()
                .add(android.R.id.content, fragment).commit();

        GoogleMap mMap;
        mMap = ((MapFragment) getSupportFragmentManager().findFragmentById(android.R.id.content)).getMap();
        mMap.addMarker(new MarkerOptions()
                .position(new LatLng(0, 0))
                .title("Hello world"));


    }
}

Итак, вы можете видеть, что я ссылался на библиотеку фрагментов в импорте, Eclipse не выдает ошибок, поэтому кажется, что он существует. На приведенном ниже изображении вы можете увидеть, что в моем проекте eclipse показаны ссылочные библиотеки. В нем вы можете увидеть класс FragmentManager с помощью findFragmentById(). Я также нашел другие классы, на которые я ссылаюсь аналогичным образом. Итак, чтобы закончить, у меня есть библиотеки в папке lib, и они подтверждаются eclipse и не вызывают ошибок в коде, но пакет не будет экспортироваться из-за ошибок, и единственная ошибка находится в строке 1 этого кода рядом с "p" в пакете, который гласит:" Тип android.app.Fragment не может быть разрешен. Это косвенно ссылается на требуемые .class файлы '

ссылки библиотек

Любые идеи?

Я попытался очистить и перестроить пути несколько раз.

4b9b3361

Ответ 1

Попробуйте изменить

mMap = ((MapFragment) getSupportFragmentManager().findFragmentById(android.R.id.content)).getMap();

к

mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(android.R.id.content)).getMap();

Вы должны запустить предварительную версию ICS для Android, и вы используете "MapFragment", который использует встроенную версию Fragments, а не версию библиотеки поддержки.

Ответ 2

Убедитесь, что ваш целевой SDK равен 3.0 или выше.

В Eclipse откройте меню "Проект", нажмите "Свойства", нажмите "Android" слева, выберите целевой SDK 3.0 или выше.