Google 云消息传递中的 ActivityNotFoundException
ActivityNotFoundException in Google Cloud Messaging
我正在 android 应用程序中开发推送通知。此时:
if (checkPlayServices()){
Intent intent = new Intent(this, RegistrationIntentService.class);
startActivity(intent);
}
必须注册设备才能获取令牌并将其发送到服务器,但是当我尝试启动 Activity 时,代码崩溃了。这是 logcat 中显示的错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cgp.tpvtablet/com.cgp.tpvtablet.activity.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.cgp.tpvtablet/com.cgp.tpvtablet.area_push.notification.RegistrationIntentService}; have you declared this activity in your AndroidManifest.xml?
在清单中,RegistrationIntentService 在其当前包中声明为服务:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:windowSoftInputMode="adjustPan">
<activity
android:name=".activity.MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.cgp.tpvtablet"/>
</intent-filter>
</receiver>
<service android:name=".area_push.notification.MyGCMListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service android:name=".area_push.notification.MyInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>
<service android:name=".area_push.notification.RegistrationIntentService"
android:exported="false"/>
</application>
我在manifest中写RegistrationIntentService时,小编建议我这条路径。
谁能帮我?提前致谢。
在您的清单中,主要 activity 有一个相对路径“.activity.MainActivity”,您在清单包属性中放置的基本路径是什么?
如果 RegistrationIntentService
是一项服务,您为什么要使用 startActivity(intent);
因为它不是 activity 它不会工作并且会崩溃
你需要startService
我正在 android 应用程序中开发推送通知。此时:
if (checkPlayServices()){
Intent intent = new Intent(this, RegistrationIntentService.class);
startActivity(intent);
}
必须注册设备才能获取令牌并将其发送到服务器,但是当我尝试启动 Activity 时,代码崩溃了。这是 logcat 中显示的错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cgp.tpvtablet/com.cgp.tpvtablet.activity.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.cgp.tpvtablet/com.cgp.tpvtablet.area_push.notification.RegistrationIntentService}; have you declared this activity in your AndroidManifest.xml?
在清单中,RegistrationIntentService 在其当前包中声明为服务:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:windowSoftInputMode="adjustPan">
<activity
android:name=".activity.MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.cgp.tpvtablet"/>
</intent-filter>
</receiver>
<service android:name=".area_push.notification.MyGCMListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service android:name=".area_push.notification.MyInstanceIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>
<service android:name=".area_push.notification.RegistrationIntentService"
android:exported="false"/>
</application>
我在manifest中写RegistrationIntentService时,小编建议我这条路径。 谁能帮我?提前致谢。
在您的清单中,主要 activity 有一个相对路径“.activity.MainActivity”,您在清单包属性中放置的基本路径是什么?
如果 RegistrationIntentService
是一项服务,您为什么要使用 startActivity(intent);
因为它不是 activity 它不会工作并且会崩溃
你需要startService