Невозможно загрузить любой контент в MapActivity на эмуляторе Android 2.3 - PullRequest
0 голосов
/ 11 марта 2012

Я пытаюсь загрузить Google mmaps для своей активности.После борьбы с серией ошибок мой лог-кошка наконец-то показывает мне эту ошибку:

03-11 23:42:08.390: E/MapActivity(712): Couldn't get connection factory client

Деятельность карты не загружает никакого контента.Я попытался найти решение, и:

  • Моя деятельность расширяет MapActivity
  • Я дал Интернет-разрешение <uses-permission android:name="android.permission.INTERNET"/>
  • Я также сказал приложению, что ябудет использовать библиотеку карт <<code>uses-library android:name="com.google.android.maps"/>
  • Моя целевая машина и виртуальная машина имеют API уровня 10 и оба целевого Google API
  • Мой ключ API корректен и работает.
  • Я подключаюсь к Интернету напрямую, используя широкополосное соединение.

Я предполагаю, что я не могу подключиться к Интернету.Я попытался открыть браузер в эмуляторе и не смог открыть ни одного URL.Поэтому я думаю, что у меня нет доступа к Интернету на моем эмуляторе.После некоторого поиска подключения к Интернету на эмуляторе и со ссылкой на этот вопрос я попытался выполнить команду: C:\program files\android\android-sdk-windows\tools\emulator -avd -dns-server 8.8.8.8

Но я закончил с ошибкой:

PANIC: Could not open: C:\Documents and Settings\dwadasi\.android/avd/-dns-serv
r.ini

Я не мог понять, в чем проблема.Я попытался установить файл APK на свой телефон Android [2.3.6], и это сработало.Но мне действительно нужно, чтобы он работал на моем эмуляторе, так как мне еще многое предстоит сделать.

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

попробуйте этот код .... я использую это и сейчас работаю.

class MapOverlay extends com.google.android.maps.Overlay
{
    @Override
    public boolean draw(Canvas canvas, MapView mapView, 
    boolean shadow, long when) 
    {
        super.draw(canvas, mapView, shadow);                   

        //---translate the GeoPoint to screen pixels---
        Point screenPts = new Point();
        mapView.getProjection().toPixels(p, screenPts);

        //---add the marker---
        Bitmap bmp = BitmapFactory.decodeResource(
            getResources(), R.drawable.pushpin2);            
        canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);         
        return true;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event, MapView mapView) 
    {   
        add="";
        //---when user lifts his finger---
        if (event.getAction() == 1) {                
            GeoPoint p = mapView.getProjection().fromPixels(
                (int) event.getX(),
                (int) event.getY());


            Geocoder geoCoder = new Geocoder(
                    getBaseContext(), Locale.getDefault());
                try {
                    List<Address> addresses = geoCoder.getFromLocation(
                        p.getLatitudeE6()  / 1E6, 
                        p.getLongitudeE6() / 1E6, 1);

                    lattitude=p.getLatitudeE6()  / 1E6;
                    longitude=p.getLongitudeE6() / 1E6;

                    if (addresses.size() > 0) 
                    {
                        for (int i=0; i<addresses.get(0).getMaxAddressLineIndex(); 
                             i++)
                           add += addresses.get(0).getAddressLine(i) + "\n";
                    }

                    Toast.makeText(getBaseContext(), add, Toast.LENGTH_SHORT).show();


                }
                catch (IOException e) {                
                    e.printStackTrace();
                }   
                return true;

        }                
        else {
        return false;
        }
    }        
}
0 голосов
/ 12 марта 2012

Я часто бывал во время разработки. Обычно я просто убиваю эмулятор и создаю новый, и все исправляется.

Вы правильно использовали браузер для проверки интернет-соединения. Если у вас нет соединения, то никакое отображение не будет работать.

...