2016-06-26 5 views
1

알림을 작성하여 표시하고 표시 할 의도로 스택을 작성하려고합니다. 하지만 NameNotFoundException 얻을.addParentStack의 NameNotFoundException

Intent resultIntent = new Intent(mContext, ForecastFragment.class); 

TaskStackBuilder stackBuilder = TaskStackBuilder.create(mContext); 
stackBuilder.addParentStack(ForecastFragment.class); 
stackBuilder.addNextIntent(resultIntent); 
PendingIntent resultPendingIntent = stackBuilder. 
        getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
mBuilder.setContentIntent(resultPendingIntent); 
NotificationManager notificationManager = 
        (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); 
notificationManager.notify(10 ,mBuilder.build()); 

예외는 있습니다.

3541-3562/com.example.android.sunshine.app E/AndroidRuntime: FATAL EXCEPTION: SyncAdapterThread-1 
      Process: com.example.android.sunshine.app, PID: 3541 
      java.lang.IllegalArgumentException: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{com.example.android.sunshine.app/com.example.android.sunshine.app.ForecastFragment} 
      at android.support.v4.app.TaskStackBuilder.addParentStack(TaskStackBuilder.java:247) 
      at android.support.v4.app.TaskStackBuilder.addParentStack(TaskStackBuilder.java:226) 
      at com.example.android.sunshine.app.sync.SunshineSyncAdapter.notifyWeather(SunshineSyncAdapter.java:526) 
      at com.example.android.sunshine.app.sync.SunshineSyncAdapter.getWeatherDataFromJson(SunshineSyncAdapter.java:424) 
      at com.example.android.sunshine.app.sync.SunshineSyncAdapter.onPerformSync(SunshineSyncAdapter.java:255) 
      at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:259) 
      Caused by: android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{com.example.android.sunshine.app/com.example.android.sunshine.app.ForecastFragment} 
      at android.app.ApplicationPackageManager.getActivityInfo(ApplicationPackageManager.java:314) 
      at android.support.v4.app.NavUtils.getParentActivityName(NavUtils.java:301) 
      at android.support.v4.app.NavUtils.getParentActivityIntent(NavUtils.java:256) 
      at android.support.v4.app.TaskStackBuilder.addParentStack(TaskStackBuilder.java:240) 
      at android.support.v4.app.TaskStackBuilder.addParentStack(TaskStackBuilder.java:226)  
      at com.example.android.sunshine.app.sync.SunshineSyncAdapter.notifyWeather(SunshineSyncAdapter.java:526)  
      at com.example.android.sunshine.app.sync.SunshineSyncAdapter.getWeatherDataFromJson(SunshineSyncAdapter.java:424)  
      at com.example.android.sunshine.app.sync.SunshineSyncAdapter.onPerformSync(SunshineSyncAdapter.java:255)  
      at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:259) 

나는 패키지 이름과 클래스 ForecastFragment가 배치되는 패키지를 확인하지만 모든 올바른 것입니다. 누군가 나를 분류하는 데 나를 도울 수 있습니까?

답변

2

조각은 구성 요소가 아니며 의도와 함께 사용할 수 없습니다. Activity, Service 또는 BroadcastReceiver과 같은 구성 요소 만 Intent을 구축하는 데 사용할 수 있습니다.

그러므로 첫 번째 줄 (new Intent(mContext, ForecaseFragment.class))과 addParentStack(ForecastFragment.class)은 모두 유효하지 않습니다. 해당 조각이 포함 된 매니페스트에 등록 된 Activity을 사용해야합니다.

+0

내 문제가 해결되었습니다. –