2012-10-11 2 views
0

저는 Google 클라우드 메시징의 초보자입니다. GCm의 기능을 확인하기위한 데모 앱을 개발하고있었습니다. GCM 프로젝트를 만들었고 기기가 등록되어 있는지 여부를 확인하고 있습니다. 내 프로젝트로의 GSM jar 파일을 포함했다GCM 강제 종료 중 활동

<uses-sdk android:minSdkVersion="8" /> 
    <!-- App receives GCM messages. --> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
<!-- GCM connects to Google Services. --> 
<uses-permission android:name="android.permission.INTERNET" /> 
<!-- GCM requires a Google account. --> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<!-- Keeps the processor from sleeping when a message is received. --> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<permission android:name="my_app_package.permission.C2D_MESSAGE" android:protectionLevel="signature" /> 
<uses-permission android:name="my_app_package.permission.C2D_MESSAGE" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > 
    <intent-filter> 
    <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 
    <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 
    <category android:name="my_app_package" /> 
    </intent-filter> 
</receiver> 
<service android:name=".GCMIntentService" /> 
     <activity 
      android:name=".GCmExampleActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

, 나는

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     GCMRegistrar.checkDevice(this); 
     GCMRegistrar.checkManifest(this); 
     final String regId = GCMRegistrar.getRegistrationId(this); 
     if (regId.equals("")) { 
      GCMRegistrar.register(this, "483910217912"); 
      Log.d(tag, "Registered"); 
     } else { 
      Log.v(tag, "Already registered"); 
     } 
    } 

를 다음 코드를 사용하고 내 매니페스트 파일입니다.

그것이 주시는 로그 캣 오류

,

10-11 13:44:59.001: E/AndroidRuntime(339): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kochar.it.GCM/com.kochar.it.GCM.GCmExampleActivity}: java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf 

오류가 라인에는

GCMRegistrar.checkDevice(this); 

답변

2

당신이 잘못된 에뮬레이터를 사용하고있는 것으로 보인다. 기본 에뮬레이터는 Google 패키지가 없으며 맵, c2dm 및 모든 종류의 항목과 같은 모든 종류의 항목을 실행할 수없는 일반 Android 에뮬레이터를 사용합니다. 원하는 것은 Google API를 지원할 수있는 새로운 에뮬레이터를 만드는 것입니다.

+0

고맙습니다. Google API로 에뮬레이터를 만들도록하겠습니다. –

+0

고맙습니다. 나는 구글 API를 지원하는 새로운 에뮬레이터를 만들었다. 어떤 유형의 프로젝트를 시작해야하는지에 대한 아이디어를 제안 해주십시오. –

+0

"어떤 유형의 프로젝트부터 시작해야합니까?" – Deepika

2

에뮬레이터에서 실행하지 마십시오. Google 계정이 필요하기 때문입니다.

다음 중 하나를 시도,

  1. 구글 API를이 Bluestack에 (http://bluestacks.com/)

그것은 해결할 실제 안드로이드 폰에 enter image description here

  • 실행을
  • 실행을 에뮬레이터 만들기 너의 문제. :)

  • +0

    고맙습니다. 고맙습니다. Google API와 에뮬레이터. –

    +0

    고맙습니다. 나는 구글 API를 지원하는 새로운 에뮬레이터를 만들었다. –

    +0

    환영합니다.이 대답을 수정하는 것을 잊지 마십시오. –