이 앱은 Bazaar를 통해 Google Play 서비스를 업데이트하지 않으면 실행되지 않습니다.


100

새로운 Android 용 Google Maps API V2를 테스트 중이며 앱이 시작될 때 다음 메시지가 표시됩니다.

오류 메시지를 보여주는 MainActivity

이것은 4.1 에뮬레이터에서 실행 중입니다.

AndroidManifest.xml파일 은 다음과 같습니다 .

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.maptest"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <permission
        android:name="com.example.maptest.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"/>
    <uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <!-- Require OpenGL ES version 2 -->
    <uses-feature
          android:glEsVersion="0x00020000"
          android:required="true"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="##myapikey##"/>

    </application>
</manifest>

MainActivity.java 파일 :

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

activity_main.xml 파일

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.MapFragment"/>
</RelativeLayout>

"업데이트"를 클릭하면 다음 스택 추적과 함께 앱이 충돌합니다.

E/Trace(1034): error opening trace file: No such file or directory (2)
W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date.  Requires 2010100 but found 1
D/gralloc_goldfish(1034): Emulator without GPU emulation detected.
D/AndroidRuntime(1034): Shutting down VM
W/dalvikvm(1034): threadid=1: thread exiting with uncaught exception (group=0x40a13300)

E/AndroidRuntime(1034): FATAL EXCEPTION: main
E/AndroidRuntime(1034): android.content.ActivityNotFoundException: No Activity found to handle Intent
  { act=android.intent.action.VIEW dat=http://play.google.com/store/apps/details? \
  id=com.google.android.apps.bazaar flg=0x80000 pkg=com.android.vending }
E/AndroidRuntime(1034):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545)
E/AndroidRuntime(1034):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)
E/AndroidRuntime(1034):     at android.app.Activity.startActivityForResult(Activity.java:3351)
E/AndroidRuntime(1034):     at android.app.Activity.startActivityForResult(Activity.java:3312)
E/AndroidRuntime(1034):     at android.app.Activity.startActivity(Activity.java:3522)
E/AndroidRuntime(1034):     at android.app.Activity.startActivity(Activity.java:3490)
E/AndroidRuntime(1034):     at com.google.android.gms.internal.c$2.onClick(Unknown Source)
E/AndroidRuntime(1034):     at android.view.View.performClick(View.java:4084)
E/AndroidRuntime(1034):     at android.view.View$PerformClick.run(View.java:16966)
E/AndroidRuntime(1034):     at android.os.Handler.handleCallback(Handler.java:615)
E/AndroidRuntime(1034):     at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(1034):     at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(1034):     at android.app.ActivityThread.main(ActivityThread.java:4745)
E/AndroidRuntime(1034):     at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1034):     at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(1034):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
E/AndroidRuntime(1034):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime(1034):     at dalvik.system.NativeStart.main(Native Method)

Google Play 서비스 프로젝트도 참조했습니다. 내가 여기서 뭘 잘못하고 있니?

최신 정보

Google 문제 추적기 ( https://issuetracker.google.com/issues/35822258 ) 의 해당 버그가 얼마 전에 해결되었습니다.

이제 에뮬레이터에서 Google Maps Android API를 사용하고이 답변에 설명 된대로 Play 서비스로 가상 기기를 만들 수 있습니다.

https://stackoverflow.com/a/46246782/5140781


Google API 또는 일반 Android와 함께 avd를 사용하고 있습니까?
Selvin

평범한 Android, 4.1 용 Google API로 전환하려고 시도했지만 동일합니다.
soren.qvist

이상하게도 나는 정확히 같은 시간에 정확히 같은 문제를보고 있습니다. 지금까지 Google Play 서비스 APK가 에뮬레이터에 설치되지 않았기 때문이라고 가정하고 있습니다. 이 오류는 앱이 APK를 설치하기 위해 Google Play (스토어)를 시작하려고하기 때문입니다. 아마도 장치에서 잘 작동 할 것입니다.
gazreese


답변:


42

Google+에서 Android 개발자 와 논의한 바에 따르면 현재 에뮬레이터에서 새 Map API를 실행할 수 없습니다.

(댓글은 어제 23:18에 Zhelyazko Atanasov에서 왔으며 직접 연결하는 방법을 모르겠습니다)

또한 실제 장치에서 실행할 때 " (Bazaar를 통해) "부분 이 표시되지 않으며 업데이트 버튼을 누르면 Play 스토어가 열립니다. Bazaar가 Android 에뮬레이터에서 Google Play 서비스를 제공하기위한 것이라고 가정하고 있지만 아직 준비되지 않았습니다 ...


15
글쎄, 그건 불행한 일
soren.qvist

최신 GmsCore.apk를 에뮬레이터에 직접 복사하려고 시도했지만 작동하지 않습니다. 루팅 된 기기에서 복사 할 APK를 정확히 알고 있으면 작동 할 것입니다.
James Wald

56

최신 정보

이제 Google지도 API v2가 최신 Google 시스템 이미지 (api : 19 ARM 또는 x86)에 설치되었습니다.
따라서 응용 프로그램은 새 이미지로만 작동해야합니다. 이러한 파일을 설치할 필요가 없습니다.

에뮬레이터에서 Android Google Maps V2 애플리케이션을 실행하려고했는데 마침내 Google Play 서비스가 실행되고 나면 SDK를 Google Play 서비스 버전 4로 업데이트했는데 에뮬레이터가 더 이상 내 애플리케이션을 실행하지 않습니다.

이제 변압기 태블릿에서 에뮬레이터를 업데이트하는 방법을 알아 냈습니다. (아래 파일을 다운로드 할 수 있으므로 태블릿이 필요하지 않습니다.)

Titanium Backup을 사용하여 Asus Eee Pad Transformer (TF101) 를 백업 한 다음 백업에서 com.android.vending 및 com.google.android.gms APK 파일을 가져 왔습니다.

플랫폼 : 4.1.2, API 레벨 : 16, CPU Intel / Atom x86)으로 구성된 에뮬레이터에이를 설치했고 Google Maps V2 애플리케이션이 다시 작동합니다.

그게 전부 .. / system / app에 관한 다른 단계는 필요하지 않았습니다.

내 애플리케이션은 Google Maps API 만 사용하며 다른 Google Play 서비스를 사용하는 경우 더 많은 단계가 필요합니다.

최신 Google Play 서비스를위한 새 파일 :

이전과 동일한 지침 : CPU / ABI , Google이 아닌 API 대상 (버전 10-19 작동) 및 GPU 에뮬레이션을 사용하거나 사용 하지 않는 새 에뮬레이터를 만든 다음 파일을 설치합니다.

adb install com.android.vending-20140218.apk
adb install com.google.android.gms-20140218.apk

기존 에뮬레이터를 업그레이드하는 경우 다음을 수행하여 이전 버전을 제거해야 할 수 있습니다.

adb uninstall com.android.vending
adb uninstall com.google.android.gms

그게 다야.


에뮬레이터가 x86인지 ARM인지는 중요하지 않습니다. 플랫폼 : 4.2도 괜찮습니다.
Dan Brough 2012

1
developer.android.com/google/play-services/index.html 에 따르면 . 기기에 GL ES 버전 2가있는 한 Android 2.2 (즉, API 레벨 8)를 사용하는 기기는 충분해야합니다.
Jarl

1
해당 파일을 설치하려고 시도했지만 adb가 파일이 이미 설치되었다는 오류 메시지를 표시했습니다. 재설치를 시도했는데 인증서가 일치하지 않는다고합니다. 그러면 어떻게해야합니까?
huong

adb uninstall com.android.vending및을 사용하여 사전 설치된 패키지를 제거 할 수있었습니다 adb uninstall com.google.android.gms. 위에서 언급 한 패키지를 설치 한 후 내 애플리케이션이 실행되지만 EGL_emulation: eglSurfaceAttrib not implemented로그에 경고 메시지가 표시되고 애플리케이션에지도가 표시되지 않습니다. 이것은 에뮬레이터 / GPU 문제라고 생각합니다. 내 GPU는 Radeon HD6870에뮬레이터에서 Google API없이 Android 4.1.2를 실행하고있었습니다.
dvim

"EGL_emulation : eglSurfaceAttrib가 구현되지 않음"과 관련하여 에뮬레이션 옵션에서 "호스트 GPU 사용"을 시도해보십시오.
Dan Brough

39

Android 에뮬레이터 에서 새 gmaps API (Google Maps Android API v2) 를 구성하는 데 약 하루를 보냈습니다 . 인터넷에서 찾은 방법 중 어느 것도 제대로 작동하지 않았습니다. 그러나 나는 그것을했다. 방법은 다음과 같습니다.

  1. 다음 구성으로 새 에뮬레이터를 만듭니다.

여기에 이미지 설명 입력

다른 버전에서는 필요한 애플리케이션을 설치할 때 다양한 오류로 인해 구성 할 수 없었습니다.

2) 에뮬레이터를 시작하고 다음 애플리케이션을 설치합니다.

  • GoogleLoginService.apk
  • GoogleServicesFramework.apk
  • Phonesky.apk

다음 명령으로이를 수행 할 수 있습니다.

2.1) adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
2.2) adb shell chmod 777 /system/app
2.3-2.5)adb push Each_of_the_3_apk_files.apk /system/app/

APK 파일 다운로드 링크 . 루팅 된 Android 기기에서 복사했습니다.

3) 에뮬레이터에 Google Play 서비스Google지도 를 설치합니다 . Google Play 스토어 에서 설치하면 오류 491이 발생합니다 . 에뮬레이터에 앱을 업로드하고 로컬에서 설치를 실행했습니다. ( adb이것을 설치 하는 데 사용할 수 있습니다 ). 앱 링크 :

4)이 단계 후에 에뮬레이터에서 데모 샘플을 성공적으로 실행했습니다. 다음은 스크린 샷입니다.

구글지도


이 방법에는 몇 가지 불필요한 단계가 있다고 생각합니다. ... 설치하는 두 된 APK와 다른 대답 중 하나에서 내 방법을 시도
네마냐 Kovacevic

나는 당신의 방법을 시도했지만 응용 프로그램을 시스템 / 앱 디렉토리에로드 할 때 여유 공간이 충분하지 않다는 오류가 발생했습니다. 많은 양의 메모리로 새 에뮬레이터를 만드는 것은 도움이되지 않았습니다. 다른 버전의 에뮬레이터에서는 방법이 작동하지 않았습니다.
Paha

1
3) 단계에서 설치 명령은 adb install com.google.android.apps.maps-1.apkadb install com.google.android.gms-2.apk입니다.
sulai

그리고 필요에 맞는 Google Play 서비스 버전을 받으십시오. papktop.com/tag/google-play-services-apk 에서 다운로드 할 수 있습니다 .
sulai

항상 최신 Google Play APK 버전을 설치하고 있는지 확인하세요. 현재 Google Play v2에서는 업데이트를 설치할 수 없으며 (불쾌한 491 오류 발생) Google지도 애플리케이션을 실행하려면이 업데이트가 필요합니다.
Serhiy 2013

29

처음에는 작동하지 않았던 솔루션이 이제 작동하고 작동하도록 단계를 다시 만들 수 있기 때문에 두 번째로이 질문에 대답하고 있습니다. :)

나는 또한에 대한 조언에 의해 에뮬레이터에 구글 플레이 스토어를 설치하려고했습니다, 그래서 스토어, 여기 범인은 Google Play의 부족한 느낌이 있었다 이 링크링크가 결합합니다. 몇 가지 어려움이 있었지만 결국 Google Play 스토어 설치에 성공하고 임의의 앱을 다운로드하여 테스트했습니다. 하지만지도 활동은 "업데이트"버튼과 함께 메시지를 계속 표시했습니다. 이 버튼을 누르면 상점으로 이동하지만 "항목을 찾을 수 없음"이라는 메시지가 표시되고지도가 여전히 작동하지 않습니다. 그 시점에서 나는 포기했다.

어제 실수로 동일한 테스트 앱을 실행했는데 작동했습니다! 나는 매우 혼란 스러웠지만 빠르게 작동하는 에뮬레이터와 새롭고 깨끗한 것을 비교해 보았고 / data / app / 디렉토리에서 작동하는 두 개의 앱을 결정했습니다 : com.android.vending-1. apk 및 com.google.android.gms-1.apk. 해당 사이트의 지침에 따라 Google Play Store를 설치할 때 Phonesky.apk, GoogleServicesFramework.apk 및 GoogleLoginService.apk와 다른 폴더 / system / app에 푸시했기 때문에 이것은 이상합니다.

어쨌든 이제 Android Google Maps API v2가 내 에뮬레이터에서 작동합니다. 이를 수행하는 단계는 다음과 같습니다.


새 에뮬레이터 만들기

  • 대한 장치 "(: MDPI 480 X 800) 5.1 ''WVGA"을 선택
  • 들어 대상 "- API 레벨 16 안드로이드 4.1.2"을 선택
  • "CPU / ABI"의 경우 "ARM"을 선택합니다.
  • 나머지는 기본값으로 둡니다.

이것이 나를 위해 작동하는 설정입니다. 나는 다른 것들을 모른다.


에뮬레이터 시작


설치 com.android.vending-1.apkcom.google.android.gms-1.apk을 설치 명령을 ADB를 통해


이제 Google지도가 에뮬레이터에서 작동합니다.


여기에 내가이 작업 만들려고했는지에 대한 설명과 함께 내 블로그에 링크입니다 nemanjakovacevic.net/blog/2012/12/...
네마냐 Kovacevic

불행히도 Google Play 서비스 개정 4는 새로운 오류를 제공합니다. Google Play 서비스가 오래되었습니다. 2012100이 필요하지만 2010110
Ilja S를

3
좋아, 플레이 서비스 4 차 개정판이있는 경우 @danbrough 답변을보고 댓글에 지정된 apk를 다운로드하십시오. 링크
Ilja S.

1
이것은 x86에서도 작동하므로 에뮬레이터가 훨씬 더 빠릅니다!
Caffeine

3

어떻게 작동하는지 (독일어) 설명을 만들었습니다 . 기본적으로 API 레벨 9 이상이 있고 Google API가없는 에뮬레이터가 필요합니다. 그런 다음 루팅 된 기기 에서 APK를 가져와야 합니다.

adb -d pull /data/app/com.android.vending-2.apk
adb -d pull /data/app/com.google.android.gms-2.apk

에뮬레이터에 설치하십시오.

adb -e install com.android.vending-2.apk
adb -e install com.google.android.gms-2.apk

API 레벨 14 이상의 에뮬레이터가 있고 추가로 설치하는 경우 기본 Google지도 앱을 실행할 수도 있습니다. com.google.android.apps.maps-1.apk

즐기세요.


2

에뮬레이터에서 Android Google Maps v2를 실행하려고했지만이를 수행 할 수있는 많은 방법을 찾았지만 어느 것도 저에게 효과가 없었습니다. Logcat에 항상이 경고가 Google Play services out of date. Requires 3025100 but found 2010110있으며 에뮬레이터에서 Google Play 서비스를 업데이트하려고 할 때 아무 일도 일어나지 않았습니다. 문제는 com.google.android.gms APK 가 내 Android SDK의 라이브러리 버전과 호환되지 않는다는 것입니다.

내 에뮬레이터에 "com.google.android.gms.apk", "com.android.vending.apk"파일을 설치했고 내 앱 Google Maps v2가 제대로 작동했습니다. / system / app에 관한 다른 단계는 필요하지 않았습니다.


1
그것들은 설치할 파일입니다 : vending.apkgms.apk
Adil

2

이 앱은 Google Play 서비스를 업데이트하지 않으면 실행되지 않습니다. 오랜만에 시도해 봤지만 아직지도를 못 받았는데 ... 아래 댓글로 구글 플레이 서비스를 수정 했는데도 빈 화면 만 나오네요 ..


Play 서비스 매니페스트 파일을 확인하고 APK 파일 com.google.android.gms의 버전 코드를 확인하세요. 아래에서는 "3136110"입니다. 이 APK 파일을 다운로드하고 DOS 프롬프트에서 설치하되 설치 전에 대상 에뮬레이터를 실행하십시오.

package="com.google.android.gms"
android:versionCode="3136110"
android:versionName="3.1.36 (673201-10)

이 링크 에서이 APK 파일을 얻었습니다 .


2

다음 단계를 수행하여 이러한 문제를 해결했습니다.

  • 에뮬레이터에서 :

    최신 API를 사용해야합니다 Google APIs(Google Inc.)-API Level 19.

    스크린 샷 자체에 배치 된 나머지 작업을 수행합니다.

    여기에 이미지 설명 입력

  • API 키 :

    새 API 키를 생성하고 Google Map API 키 및 SHA 키에 대해주의 깊게 확인하십시오.

  • Google Play 서비스 :

    최신 Google Play 서비스 com.android.vending-4.8.20.apk 를 다운로드해야합니다 . 해당 사이트에서 Google Play 서비스가 작동하지 않는 경우라는 이름의 인터넷에서 많은 사이트를 찾을 수 있습니다 com.android.vending 4.8.20.apk.

    명령 프롬프트를 사용하여 Google Play 서비스를 실행할 수 있습니다 adb install com.android.vending 4.8.20.apk.

    참고 : 인터넷에서 해마다 최신 버전이 업데이트되므로 최신 Google Play 서비스를 다운로드해야합니다.

    출력 :

    여기에 이미지 설명 입력


1
@JJD 편집 중입니다. 확인해보세요.
Steve

0

ADT 22.0.1로 업데이트 한 후 Android 비공개 라이브러리로 인해 Google Maps 서비스에서 오류가 발생하고 앱이 다운되었습니다. 그래서 마침내 해결책을 찾았고 저에게 효과적이었습니다.

그냥 구글 플레이 서비스 라이브러리를 설치 한 후 이동 google-play-service/libproject/google-play-services_lib에서 https://www.dropbox.com/sh/2ok76ep7lmav0qf/9XVlv61D2b. 작업 공간으로 가져옵니다. gogole-play-services-lib를 사용하려는 프로젝트를 정리 한 다음 다시 빌드하고 프로젝트 -> 속성 -> Java BuildPath 로 이동하여 -> "Android Private Libraries, Android Dependencies, google-play-service"를 선택합니다.

속성 자체에서 Android로 이동 한 다음 버전 중 하나를 선택한 다음 추가를 선택하고 google-play-service-lib를 선택한 다음 적용을 누르고 마지막으로 확인을 누릅니다.

마지막으로 프로젝트-> Android 도구-> Android 지원 라이브러리로 이동합니다. 라이센스에 동의하고 설치 후 프로젝트를 실행하십시오.

잘 작동합니다.



0

Android SDK Manager에서 다음을 설치합니다. Extras : Google Play 서비스


0
 just change it to 

compile 'com.google.android.gms:play-services-maps:9.6.0'
compile 'com.google.android.gms:play-services-location:9.6.0'

이것은 나를 위해 작동합니다. 현재 버전은 10.0.1입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.