Les Google Play services de ressources n'ont pas été trouvés - les Notifications Push

Je suis à la suite de la Google Tutoriel pour installer de Notification Push sur Android.
Je suis en utilisant Google Play Services Module parce que le Google Cloud Messaging a été récemment obsolète.

Tutoriel : Google Cloud Messaging - Google Play Services

Mais quand je lance l'application j'ai cette erreur :

11-06 13:37:30.119  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1821 (common_google_play_services_unknown_issue) in Lcom/google/android/gms/R$string;
11-06 13:37:30.119  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1821 (common_google_play_services_unknown_issue) in Lcom/google/android/gms/R$string;
11-06 13:37:30.119  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1816 (common_google_play_services_install_title) in Lcom/google/android/gms/R$string;
11-06 13:37:30.119  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1812 (common_google_play_services_enable_title) in Lcom/google/android/gms/R$string;
11-06 13:37:30.119  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1826 (common_google_play_services_update_title) in Lcom/google/android/gms/R$string;
11-06 13:37:30.119  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1823 (common_google_play_services_unsupported_title) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1820 (common_google_play_services_network_error_title) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1821 (common_google_play_services_unknown_issue) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1821 (common_google_play_services_unknown_issue) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1818 (common_google_play_services_invalid_account_title) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1821 (common_google_play_services_unknown_issue) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1813 (common_google_play_services_install_button) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1810 (common_google_play_services_enable_button) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1824 (common_google_play_services_update_button) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1821 (common_google_play_services_unknown_issue) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1815 (common_google_play_services_install_text_tablet) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1814 (common_google_play_services_install_text_phone) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1811 (common_google_play_services_enable_text) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1825 (common_google_play_services_update_text) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1822 (common_google_play_services_unsupported_text) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1819 (common_google_play_services_network_error_text) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1817 (common_google_play_services_invalid_account_text) in Lcom/google/android/gms/R$string;
11-06 13:37:30.129  20097-20097/com.thedjnivek.android.emarchespublics W/dalvikvm VFY: unable to resolve static field 1821 (common_google_play_services_unknown_issue) in Lcom/google/android/gms/R$string;
11-06 13:37:30.139  20097-20097/com.thedjnivek.android.emarchespublics E/GooglePlayServicesUtil The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
11-06 13:37:30.220  20097-20097/com.thedjnivek.android.emarchespublics E/GooglePlayServicesUtil The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

Vous pouvez voir ici mon code source

//basic import ...
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.gcm.GoogleCloudMessaging;
public class AppMainTabActivity extends FragmentActivity {
public static final String EXTRA_MESSAGE = "message";
public static final String PROPERTY_REG_ID = "registration_id";
private static final String PROPERTY_APP_VERSION = "appVersion";
private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 9000;
/**
* Substitute you own sender ID here. This is the project number you got
* from the API Console, as described in "Getting Started."
*/
String SENDER_ID = "7984****78";
/**
* Tag used on log messages.
*/
static final String TAG = "GCMDemo";
TextView mDisplay;
GoogleCloudMessaging gcm;
AtomicInteger msgId = new AtomicInteger();
SharedPreferences prefs;
Context context;
String regid;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = getApplicationContext();
//Check device for Play Services APK. If check succeeds, proceed with
// GCM registration.
if (checkPlayServices()) {
gcm = GoogleCloudMessaging.getInstance(this);
regid = getRegistrationId(context);
if (regid.isEmpty()) {
registerInBackground();
}
} else {
Log.i(TAG, "No valid Google Play Services APK found.");
}
}
//You need to do the Play Services APK check here too.
@Override
protected void onResume() {
super.onResume();
checkPlayServices();
}
/**
* Check the device to make sure it has the Google Play Services APK. If
* it doesn't, display a dialog that allows users to download the APK from
* the Google Play Store or enable it in the device's system settings.
*/
private boolean checkPlayServices() {
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if (resultCode != ConnectionResult.SUCCESS) {
if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
GooglePlayServicesUtil.getErrorDialog(resultCode, this,
PLAY_SERVICES_RESOLUTION_REQUEST).show();
} else {
Log.i(TAG, "This device is not supported.");
finish();
}
return false;
}
return true;
}
/**
* Gets the current registration ID for application on GCM service.
* <p>
* If result is empty, the app needs to register.
*
* @return registration ID, or empty string if there is no existing
*         registration ID.
*/
private String getRegistrationId(Context context) {
final SharedPreferences prefs = getGCMPreferences(context);
String registrationId = prefs.getString(PROPERTY_REG_ID, "");
if (registrationId.isEmpty()) {
Log.i(TAG, "Registration not found.");
return "";
}
//Check if app was updated; if so, it must clear the registration ID
//since the existing regID is not guaranteed to work with the new
//app version.
int registeredVersion = prefs.getInt(PROPERTY_APP_VERSION, Integer.MIN_VALUE);
int currentVersion = getAppVersion(context);
if (registeredVersion != currentVersion) {
Log.i(TAG, "App version changed.");
return "";
}
return registrationId;
}
/**
* @return Application's {@code SharedPreferences}.
*/
private SharedPreferences getGCMPreferences(Context context) {
//This sample app persists the registration ID in shared preferences, but
//how you store the regID in your app is up to you.
return getSharedPreferences(AppMainTabActivity.class.getSimpleName(),
Context.MODE_PRIVATE);
}
/**
* @return Application's version code from the {@code PackageManager}.
*/
private static int getAppVersion(Context context) {
try {
PackageInfo packageInfo = context.getPackageManager()
.getPackageInfo(context.getPackageName(), 0);
return packageInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
//should never happen
throw new RuntimeException("Could not get package name: " + e);
}
}
/**
* Registers the application with GCM servers asynchronously.
* <p>
* Stores the registration ID and app versionCode in the application's
* shared preferences.
*/
private void registerInBackground() {
new AsyncTask() {
@Override
protected Object doInBackground(Object[] objects) {
String msg = "";
try {
if (gcm == null) {
gcm = GoogleCloudMessaging.getInstance(context);
}
regid = gcm.register(SENDER_ID);
msg = "Device registered, registration ID=" + regid;
//You should send the registration ID to your server over HTTP,
//so it can use GCM/HTTP or CCS to send messages to your app.
//The request to your server should be authenticated if your app
//is using accounts.
sendRegistrationIdToBackend();
//For this demo: we don't need to send it because the device
//will send upstream messages to a server that echo back the
//message using the 'from' address in the message.
//Persist the regID - no need to register again.
storeRegistrationId(context, regid);
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
//If there is an error, don't just keep trying to register.
//Require the user to click a button again, or perform
//exponential back-off.
}
return msg;
}
@Override
protected void onPostExecute(Object o) {
mDisplay.append(o + "\n");
Logger.logit("onPostExecute","o");
}
}.execute(null, null, null);
}
/**
* Sends the registration ID to your server over HTTP, so it can use GCM/HTTP
* or CCS to send messages to your app. Not needed for this demo since the
* device sends upstream messages to a server that echoes back the message
* using the 'from' address in the message.
*/
private void sendRegistrationIdToBackend() {
//Your implementation here.
PushNotification.register(OpenUDID.value(this), regid, new AsyncHRHandler(this, true) {
@Override
public void onSuccess(String s) {
super.onSuccess(s);
}
});
}
/**
* Stores the registration ID and app versionCode in the application's
* {@code SharedPreferences}.
*
* @param context application's context.
* @param regId registration ID
*/
private void storeRegistrationId(Context context, String regId) {
final SharedPreferences prefs = getGCMPreferences(context);
int appVersion = getAppVersion(context);
Log.i(TAG, "Saving regId on app version " + appVersion);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(PROPERTY_REG_ID, regId);
editor.putInt(PROPERTY_APP_VERSION, appVersion);
editor.commit();
}
}

Cependant Google Play Service a été ajouté.

Les Google Play services de ressources n'ont pas été trouvés - les Notifications Push

Sur mon paramètres du module de

Les Google Play services de ressources n'ont pas été trouvés - les Notifications Push

AndroidManifest.xml

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- For notification push -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<permission android:name="com.thedjnivek.android.emarchespublics.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.thedjnivek.android.emarchespublics.permission.C2D_MESSAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<receiver
android:name=".GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.thedjnivek.android.emarchespublics" />
</intent-filter>
</receiver>
<service android:name=".GcmIntentService" />
<activity
android:name=".fragmentmodule.AppMainTabActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize|stateVisible">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.PDFActivity"
android:label="activity_pdf"/>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIza**************mGE4Mq88"/>
</application>

construire.gradle

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile: "com.google.android.gms:play-services:3.+"
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
}

Je ne sais pas où est le problème. Quelqu'un ne peut pas m'aider ? Merci beaucoup !

double possible de Impossible de résoudre le symbole "GoogleCloudMessaging' MCG
Tous les jours de Google est de faire changer et briser les vieilles versions qui rend parfois les développeurs complète avec déchirures. Que Dieu soit avec vous, mon cher frère 🙂

OriginalL'auteur Kevin Machado | 2013-11-06