Java WakefulBroadcastReceiver无法解析为类型

Java WakefulBroadcastReceiver无法解析为类型,java,android,Java,Android,我的项目显示了一条错误消息,WakefulBroadcastReceiver无法解析为类型。 我查了一下所有我能想到的可能的原因。我已经设置了android支持库和googleplay服务的路径。即使是我的mapView也能工作(如果我在代码下面加了注释),这意味着google play服务已正确添加到项目中 public class GcmBroadcastReceiver extends WakefulBroadcastReceiver { @Override public

我的项目显示了一条错误消息,
WakefulBroadcastReceiver无法解析为类型
。 我查了一下所有我能想到的可能的原因。我已经设置了
android支持库
googleplay服务
的路径。即使是我的mapView也能工作(如果我在代码下面加了注释),这意味着
google play服务
已正确添加到项目中

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);
    }
}

知道为什么会出现错误吗?

确保您的项目中添加了最新的Android支持包。例如,有一个合适的
android-support-v4.jar
并演示了
WakefulBroadcastReceiver
的使用,这是因为
android-support-v4.jar
文件,请确保您有最新的。如果你认为你的项目中有它,那就做个小动作。在另一个项目中查找相同的文件,例如使用最新SDK创建新项目。将它的jar文件复制到您的项目中,并替换旧的jar文件。现在导入
导入android.support.v4.content.WakefulBroadcastReceiver并查看其工作情况。

获取支持文件的最新版本。如果您使用的是Eclipse,请启动Android SDK管理器(窗口->Android SDK管理器)。在Extras->Android支持库下,您将看到是否有最新版本(如果没有,将显示更新可用)。更新后,软件包应显示在此处:/extras/android/support/


更多信息:

我今天遇到了这个问题,下面是我如何解决的:

这是因为Android支持JAR没有像SDK管理器那样更新。 您可以将其从libs文件夹中删除,然后执行以下操作:

  • 右键单击项目
  • 转到Android工具
  • 添加支持库
  • 这是一个截图

    然后返回课堂,按Ctrl+Shift+O组合键

    它将导入丢失的库:

    import android.support.v4.content.WakefulBroadcastReceiver;
    

    Project>Clean

    我也有同样的问题。我已经通过Android SDK管理器更新了“Android支持库”,但仍然找不到WakefulBroadcastReceiver

    解决方案是您必须删除Android SDK管理器中的“Android支持库”,然后重新安装它

    我不得不说为Android开发并不是一件愉快的事情。谷歌不推荐c2dm和com.Google.android.gcm.GCMBaseIntentService,因此所有关于android推送通知的教程都过时了。

    它对我有用 添加
    v-13 jar文件
    `转到\projects\properties\java builded path\add external jar


    您的jar文件位置是sdk\extras\android\support\v-13`

    旧的v4.jar文件已弃用!
    请卸载并重新安装!将起作用;)

    上面的答案不起作用,所以下面的程序解决了我的问题

    如果所有答案都无效,请将目标设置为Project build target下的
    Properties->Android->选择goolgle API的->应用->确定


    如果您没有将GoogleAPI设置为您的目标,这一点很明显

    我和其他队友一样使用支持库。它可以在他们的机器上工作。@TobiasLindberg:这表明您有一个旧的JAR,它是在引入WakefulBroadcastReceiver
    之前出现的。@Akash:进入SDK管理器,确保您已将最新的JAR下载到SDK安装中,然后确保项目中的JAR与SDK安装中的JAR匹配。R18支持包有一个文件大小为556198字节的JAR和ed257a47cae11af1a55614055b879947的
    md5sum
    。这与我在回答中链接到的示例项目的GitHub repo中的JAR相同。您还可以通过ZIP实用程序检查JAR的内容,查看它是否包含
    WakefulBroadcastReceiver
    。Android Studio:Add-in build.gradle这一行在
    dependencies
    编译'com.Android.support:support-v4:19.0.0'
    (确保使用Android SDK管理器安装Android支持库之前)只需添加到@Laguiz注释中:您现在可以将19.0.0替换为20.0.0,因为支持库有一个新版本。我也有同样的问题,出于某种原因,即使我使用的是最新版本的支持库,库中也找不到此WakefulBroadcastReceiver。我有很多东西依赖于支持库,它们运行良好,例如支持库片段,所以我肯定有一个可用的支持库。@user1948603那么你是如何解决它的?我还没有解决它,我现在和你有完全相同的问题,但在我的情况下(不确定你的问题是否相同)我知道我已经正确设置了我的支持库,因为我正在使用该库中的所有类,只是这个WakefulBroadcastReceiver不想为我工作。@TobiasLindberg即使我在所有活动中都使用BroadcastReceiver,它也能工作。只有这一台坏了。嗯,在这种情况下,它不是正常的广播接收机,对吗?您的项目中是否有其他代码也使用支持库中的依赖项?我的应用程序使用外部库项目,默认情况下该项目依赖于过时的
    android-support-v4.jar
    。在外部库项目上更新(替换)过时的
    android-support-v4.jar
    成功了。效果非常好。谢谢到处寻找解决办法,但没有一个奏效。这是一个救命恩人!!!谢谢别忘了“以管理员身份运行”