Android Studio代码没有问题,但是在虚拟机或者真机上打开会出现闪退

一开始还可以打开,后来添加了一些代码就不行了,再把这些代码删掉还是不行,重开了个project还是会闪退

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.myapplication, PID: 3034
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.myapplication/com.example.myapplication.HomeActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2568)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6121)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
        at androidx.appcompat.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:249)
        at androidx.appcompat.app.AppCompatDelegate.create(AppCompatDelegate.java:182)
        at androidx.appcompat.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520)
        at androidx.appcompat.app.AppCompatActivity.findViewById(AppCompatActivity.java:191)
        at com.example.myapplication.HomeActivity.<init>(HomeActivity.java:29)
        at java.lang.Class.newInstance(Native Method)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2558)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6121) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 
Process 3034 terminated.


```

img


看HomeActivity 第29行用的是什么?
如果是findViewById 可能是你的xml 里面没有你要找的这个id

改了任何代码,先在开发机器上运行调试,没问题了再发布
你这改完就敢随便发布,不是胡闹呢吗

img


两种可能
1.你的控件没有初始化。
2.你的布局文件中,找不到对应的控件id。(要么没写,要么用的其他activity布局的控件id)

PS:出了这样的问题应该是最好排查的,findViewById R.id.###可以直接跟踪到布局文件查看的。有没有?是不是?一目了然。

都闪退了,你还觉得代码没问题吗?

上代码看一下吧

看你的报错信息就是29行的那个控件实例化失败,报空对象错误。
你的listview应该在class下private Listview listview;
listview = (ListView) findViewById(R.id.lv);
你试试看