2012-03-11 1 views
0

내 활동에 Google mmaps를로드하려고합니다. 오류의 시리즈를 통해 걸렸을 후, 내 로그 고양이는 마지막 날이 오류를 보여줍니다Android 에뮬레이터 2.3에서 MapActivity의 콘텐츠를로드 할 수 없습니다.

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

지도 활동이 콘텐츠를로드하지 않습니다. 나는 해결책을 찾고, 그리고 시도 :

  • 내 활동은 내가 인터넷 persmission <uses-permission android:name="android.permission.INTERNET"/>
  • 나는 또한 내가지도 라이브러리 < uses-library android:name="com.google.android.maps"/>
  • 를 사용하는 응용 프로그램을 말했다에게 준 MapActivity
  • 를 확장 내 대상 컴퓨터와 가상 컴퓨터 둘 다 API 수준이 10이고 둘 다 Google API를 대상으로합니다.
  • API 키가 정확하고 올바르게 작동합니다.
  • 광대역 연결을 사용하여 인터넷에 직접 연결합니다.

제가 인터넷으로 접속할 수 없다고 생각합니다. 에뮬레이터에서 브라우저를 열려고 시도했지만 URL을 열지 못했습니다. 그래서 나는 에뮬레이터에서 인터넷에 접속할 수 없다고 생각한다. this question를 참조 에뮬레이터와 함께 인터넷에 연결하는 방법에 대한 잠시 동안 검색 한 후 나는 명령을 실행하려고 : 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 

이해하지 못했습니다 문제가 있습니다. 안드로이드 폰 [2.3.6]에 APK 파일을 설치하려고 시도했지만 제대로 작동했습니다. 하지만 아직도해야 할 많은 개발이 있기 때문에 실제로 에뮬레이터에서 작동해야합니다.

+0

네트워크에 연결된 모든 종류의 방화벽? 포트가 전혀 차단되지 않습니까? 내가 사용하는 Wi-Fi 네트워크 중 하나는 로그인이 필요하며 특정 포트를 차단합니다. 해당 네트워크에서 Android 에뮬레이터를 사용할 수 없습니다. – dldnh

+0

개인적으로 방화벽을 사용하지 않도록 설정했습니다 ... 여전히 좋지 않습니다 ... 같은 오류가 발생했습니다. : ( – sasidhar

답변

0

이 코드를 사용해보십시오 .... 나는 이것을 사용하여 현재 작업하고 있습니다.

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

개발 과정에서 자주 발생했습니다. 대개 나는 에뮬레이터를 죽이고 새로운 에뮬레이터를 만들고 상황을 스스로 해결합니다.

인터넷 연결을 테스트하기 위해 브라우저를 사용하는 것이 옳았습니다. 연결이 없으면 매핑이 작동하지 않습니다.

+0

나는 나의 네트 설정으로 fiddled했지만 지금 내 에뮬레이터에서 인터넷에 연결할 수 있지만 여전히 내 MapActivity에서 내용을로드 할 수 없습니다. – sasidhar