0

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 になります。その理由は何ですか?

4

1 に答える 1