3つのクラスがあり、そのうちの1つはアクティビティです。内部アクティビティ oncreate
Camera camera = Camera.open();
MovementDetector detector = new MovementDetector(this, camera);
if(detector == null)Log.d(null, "detector null in activity");
MovementResult result = new MovementResult(this, detector);
インサイドムーブメントリザルト
public class MovementResult extends SurfaceView implements SurfaceHolder.Callback, Runnable {
SurfaceHolder holder;
MovementDetector detector;
public MovementResult(Context context, MovementDetector detectorview) {
super(context);
holder = getHolder();
holder.addCallback(this);
detectorview = detector;
if(detector == null)Log.d(null, "detector null in constructor");
if(detectorview == null)Log.d(null, "detectorview null in constructor");
}
長くて骨の折れる検索の後 (理由が表示されないため、チェックしていないため...) クラス MovementResult 検出器が null であることが判明しました。どちらのログも、コンストラクターで確認できる logcat に表示されますが、アクティビティのログは表示されません。
だから私はnullではないアクティビティにオブジェクトを持っています。次に、それを別のコンストラクターに渡すと、そこで null になります。その理由は何ですか?