Мое приложение работает в течение доли секунды, показывая белый экран, а затем вылетает без каких-либо ошибок - PullRequest
1 голос
/ 27 мая 2020

Я новичок в студии android. Я пытался создать игру в пинг-понг, поэтому я начал тестировать свою программу, установив в представлении содержимого объект класса pong и попытался установить цвет поверхности. но как только я запускаю программу на своем телефоне, приложение запускается в режиме разделения se c, показывая белый экран, а затем закрывается само. пожалуйста, помогите мне с этим

package com.example.pong;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Point;
import android.os.Bundle;
import android.view.Display;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //creating object of Pong class
        Pong pongObj;

        Display display;

        //getting the resolution of the screen
        display = getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);

        //passing those resolution to the create a surface which would be be needed to drawn upon
        pongObj = new Pong(this,size.x,size.y);

        setContentView(pongObj);
    }
}

Pong class

    package com.example.pong;


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class Pong extends SurfaceView{
    private final SurfaceHolder SurfaceHolder;
    private Canvas myCanvas;
    private Paint myPaint;
    public Pong(Context context,int x,int y)
    {
        super(context);
        SurfaceHolder = getHolder();
       myCanvas.drawColor(Color.argb(0,0,0,255));
    }
}

Вот окно входа, я не могу понять ошибку, помогите пожалуйста мне с этим

    2020-05-28 05:31:27.477 8238-8238/com.example.pong E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.pong, PID: 8238
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pong/com.example.pong.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Canvas.drawColor(int)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2723)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2784)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1523)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:163)
        at android.app.ActivityThread.main(ActivityThread.java:6238)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Canvas.drawColor(int)' on a null object reference
        at com.example.pong.Pong.<init>(Pong.java:19)
        at com.example.pong.MainActivity.onCreate(MainActivity.java:26)
        at android.app.Activity.performCreate(Activity.java:6857)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2676)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2784) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1523) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:163) 
        at android.app.ActivityThread.main(ActivityThread.java:6238) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823) 
2020-05-28 05:31:27.513 8238-8238/com.example.pong I/Process: Sending signal. PID: 8238 SIG: 9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...