私はアンドロイドで簡単なアクティビティプログラムを持っています。基本的に、クラスはアクティビティを拡張するだけです。しかし、それを開始すると、クラスのコンストラクターで ClassCastException が発生します。コンストラクターも定義されていないため、Activity であるスーパークラスのコンストラクターに含まれている必要があります。
残念ながら、デバッガーは、キャストしようとしているクラスに関する詳細情報を提供しません。
ここにスタックトレースがあります:
Thread [<1> main] (Suspended (exception RuntimeException))
ActivityThread$PackageInfo.makeApplication(boolean, Instrumentation) line: 649
ActivityThread.handleBindApplication(ActivityThread$AppBindData) line: 4232
ActivityThread.access$3000(ActivityThread, ActivityThread$AppBindData) line: 125
ActivityThread$H.handleMessage(Message) line: 2071
ActivityThread$H(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 4627
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 868
ZygoteInit.main(String[]) line: 626
NativeStart.main(String[]) line: not available [native method]
そして、runtimeexception を調べると、次のようになります。
detailMessage "Unable to instantiate application com.test.MyApp: java.lang.ClassCastException: com.test.MyApp" (id=830067694464)
唯一のコードは
package com.test;
import android.app.Activity;
public class MyApp extends Activity {
}