2012-02-08 18 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) { 
     ... 
    } 
} 

これはどのように修正できますか?

EDIT: Eclipseのバグのようですね。私はプロジェクト空間のクリーンアップを行い、ビルドをやり直し、この「ミスリンク」問題を解決します。

答えて

3

ClassNotFoundException:ConnectivityHandlerが問題の詳細を提供しています。

sg.pms.ConnectivityHandler

あなたは、このConnectivityHandlerは、このパッケージにまだありますか?

sg.pms.connectivity

+0

Iマウスクラスオーバーコードテント意図=新しいテント(この、ConnectivityHandler.class)のこの部分においてであると見えます。それは "sg.pms.connectivity"である正しいパッケージを参照していますが、なぜそれを実行するとパッケージ "sg.pms"を参照しているのかわかりません – humansg

関連する問題