2012-02-08 2 views
0

다른 서브 패키지 이름으로 코드를 정리 한 후에이 오류가 발생합니다.Android - 런타임 예외. "수신기를 인스턴스화 할 수 없습니다"

ERROR/AndroidRuntime(5879): java.lang.RuntimeException: Unable to instantiate receiver sg.pms.ConnectivityHandler: java.lang.ClassNotFoundException: sg.pms.ConnectivityHandler in loader dalvik.system.PathClassLoader[/data/app/sg.pms-1.apk] 

이 코드를 실행할 활동 (주 패키지에서).

package sg.pms; 
... 
... 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Register a timer to trigger ConnectivityHandler task every 10minutes 
    Intent intent = new Intent(this, ConnectivityHandler.class); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 
      234324243, intent, 0); 
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    alarmManager.setRepeating(AlarmManager.RTC, 0, 60 * 1000, 
      pendingIntent); 
} 

하위 패키지의 ConnectivityHandler 클래스.

package sg.pms.connectivity; 
... 
public class ConnectivityHandler extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     ... 
    } 
} 

어떻게 수정합니까?

편집 : Eclipse의 버그처럼 보입니다. 프로젝트 공간을 정리하고 빌드를 다시하고이 "잘못된 링크"문제를 해결합니다.

답변

3

ClassNotFoundException : ConnectivityHandler가 문제의 세부 사항을 제공합니다. sg.pms.ConnectivityHandler

당신이 ConnectivityHandler이 패키지에 아직 확실합니까?

그것은

sg.pms.connectivity에있는 것으로 보인다

+0

때 코드 의도 의도 = 새로운 의도 (이, ConnectivityHandler.class)의이 작품의 클래스를 통해 마우스; 그것은 "sg.pms.connectivity"라는 올바른 패키지를 참조합니다. 그러나 패키지를 실행 중일 때 "sg.pms"패키지를 참조하는 이유를 모르겠습니다. – humansg

관련 문제