새로운 Android 용 Google Maps API V2를 테스트 중이며 앱이 시작될 때 다음 메시지가 표시됩니다.
이것은 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 서비스로 가상 기기를 만들 수 있습니다.
답변
Google+에서 Android 개발자 와 논의한 바에 따르면 현재 에뮬레이터에서 새 Map API를 실행할 수 없습니다.
(댓글은 어제 23:18에 Zhelyazko Atanasov에서 왔으며 직접 연결하는 방법을 모르겠습니다)
또한 실제 장치에서 실행할 때 ” (Bazaar를 통해) “부분 이 표시되지 않으며 업데이트 버튼을 누르면 Play 스토어가 열립니다. Bazaar가 Android 에뮬레이터에서 Google Play 서비스를 제공하기위한 것이라고 가정하고 있지만 아직 준비되지 않았습니다 …
답변
최신 정보
이제 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
그게 다야.
답변
Android 에뮬레이터 에서 새 gmaps API (Google Maps Android API v2) 를 구성하는 데 약 하루를 보냈습니다 . 인터넷에서 찾은 방법 중 어느 것도 제대로 작동하지 않았습니다. 그러나 나는 그것을했다. 방법은 다음과 같습니다.
- 다음 구성으로 새 에뮬레이터를 만듭니다.
다른 버전에서는 필요한 애플리케이션을 설치할 때 다양한 오류로 인해 구성 할 수 없었습니다.
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)이 단계 후에 에뮬레이터에서 데모 샘플을 성공적으로 실행했습니다. 다음은 스크린 샷입니다.
답변
처음에는 작동하지 않았던 솔루션이 이제 작동하고 작동하도록 단계를 다시 만들 수 있기 때문에 두 번째로이 질문에 대답하고 있습니다. 🙂
나는 또한에 대한 조언에 의해 에뮬레이터에 구글 플레이 스토어를 설치하려고했습니다, 그래서 스토어, 여기 범인은 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.apk 및 com.google.android.gms-1.apk을 설치 명령을 ADB를 통해
이제 Google지도가 에뮬레이터에서 작동합니다.
답변
어떻게 작동하는지 (독일어) 설명을 만들었습니다 . 기본적으로 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
즐기세요.
답변
에뮬레이터에서 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에 관한 다른 단계는 필요하지 않았습니다.
답변
이 앱은 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 파일을 얻었습니다 .