2013-09-27 4 views
19

В моем проекте отображается сообщение об ошибке WakefulBroadcastReceiver cannot be resolved to a type. Я искал все возможные причины, о которых я могу думать. Я установил путь android-support-library и google play services. Даже мой MapView работает (если я комментирую ниже код), что означает, что google play service правильно добавлен в проект.WakefulBroadcastReceiver не может быть разрешен к типу

public class GcmBroadcastReceiver extends WakefulBroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // Explicitly specify that GcmIntentService will handle the intent. 
     ComponentName comp = new ComponentName(context.getPackageName(), 
      GcmIntentService.class.getName()); 
     // Start the service, keeping the device awake while it is launching. 
     startWakefulService(context, (intent.setComponent(comp))); 
     setResultCode(Activity.RESULT_OK); 
    } 
} 

Любая идея, почему это дает ошибку?

+0

У меня такая же проблема, почему-то этот WakefulBroadcastReceiver не найден в библиотеке, хотя я использую последнюю версию библиотеки поддержки. У меня много материала, зависящего от библиотеки поддержки, которая работает нормально, например. поддержка библиотеки Фрагменты, поэтому я получил определенную рабочую поддержку. –

+0

@ user1948603 Итак, как вы его решили? – Geek

+0

Я не решил это, у меня сейчас точно такая же проблема, как и вы, но в моем случае (не уверен, что у вас одинаковое). Я знаю, что у меня есть соответствующая библиотека поддержки, потому что я использую классы повсюду от этого библиотека, это просто этот WakefulBroadcastReceiver, который не хочет работать для меня. –

ответ

23

Убедитесь, что у вас есть последний пакет поддержки Android, добавленный в ваш проект. Например, this sample project имеет подходящий android-support-v4.jar и демонстрирует использование WakefulBroadcastReceiver.

+0

Я использую библиотеку поддержки так же, как и другие мои товарищи по команде. Он работает на своих машинах. – Geek

+0

@Akash: либо JAR ошибочен, если у вас JAR неверен (должен быть в 'libs /' для традиционного проекта Eclipse или Ant), или, возможно, в Eclipse есть некорректная конфигурация (см. Http: // stackoverflow.com/questions/16596969/libraries-do-not-get-added-to-apk-anymore-after-upgrade-to-adt-22/16596990#16596990). – CommonsWare

+0

@CommonsWare Не уверен насчет Акаша, но у меня такая же проблема, как и я, и я уверен, что моя библиотека поддержки работает нормально. Библиотека поддержки добавляется, как вы говорите, и я использую много материала, полностью работающего в этой библиотеке поддержки, уже как например. Фрагменты, CursorLoaders и т. Д., Но почему-то WakefulBroadcastReceiver не хочет быть найденным. –

7

Это из-за android-support-v4.jar файла, убедитесь, что у вас есть последние. Если вы думаете, что у вас есть это в своем проекте, просто сделайте трюк. Найдите тот же файл в другом проекте, скажем, создайте новый проект с последним SDK. Скопируйте файл jar в свой проект и замените старый. Теперь импортируйте import android.support.v4.content.WakefulBroadcastReceiver; и посмотрите, как это работает.

+1

Спасибо большое! Это сделал трюк для меня. :) –

+0

К сожалению, это не мой ответ, но i upvoted u :) –

+0

Мое приложение использует внешний проект библиотеки, который по умолчанию зависит от устаревшей 'android-support-v4.jar'. Обновление (замена) устаревшего 'android-support-v4.jar' на проекте внешней библиотеки сделало трюк. – Aryo

2

Получить последнюю версию файла поддержки. Если вы используете Eclipse, запустите менеджер Android SDK (Window-> Android SDK Manager). В разделе «Дополнительно -> Поддержка Android» вы увидите, есть ли у вас последняя версия (если не будет сказано, что обновление доступно). После обновления пакет должен появиться здесь:/extras/android/support /.

Подробнее: http://developer.android.com/tools/support-library/setup.html

44

Я имел эту проблему сегодня вот как я установил его:

Это связано с Android Поддержка JAR не обновляется как менеджер SDK один. Вы можете удалить его из вашей LIBS папку, то сделать это:

  1. право проекта нажмите
  2. Перейти к Android Tools
  3. Добавить библиотеку поддержки

Вот такой скриншот enter image description here

Затем вернитесь к своему классу. Ctrl + сдвиг + O

Это будет импортировать недостающую библиотеку:

import android.support.v4.content.WakefulBroadcastReceiver; 

Project > Clean и вуаля !!

+4

Это был ответ, который работает. –

+5

Отлично. Спасибо, работал для меня :) – Gaurav

+3

Спасибо @meda, он работает! – VaroX

0

У меня такая же проблема. Я обновил «Android support library» через Android SDK Manager, но до сих пор не могу найти WakefulBroadcastReceiver.

Решение: вам нужно удалить «Android support library» в Android SDK Manager и переустановить его!

Я должен сказать, что разработка для Android не радует. Google устарел на c2dm и com.google.android.gcm.GCMBaseIntentService, чтобы все учебные материалы об уведомлении об андроиде стали устаревшими.

0

Это работает для меня Добавить v-13 jar file `Перейти к \ Проекты \ свойства \ Java построен путь \ добавить внешний баночку

И ваше местоположение баночка файл SDK \ Extras \ Android \ поддержка \ v-13`

0

Старый файл v4 .jar устарел! Необходимо удалить и установить еще раз! Будет работать;)

0

Вышеупомянутый ответ не сработал, поэтому процедура, описанная ниже, исправила мою проблему.

Если ни один из ответов не работают установить цель Properties->Android->Under Project build target Select the goolgle API's ->Apply -> OK

Это очевидно в случае, если вы пропустили, чтобы установить Google API в качестве цели.

Смежные вопросы