Android-空数组。拔出时可在Android Studio模拟器中运行,但不能在真实设备上运行

帕姆

我一直在通过Samsung S7手机(API 23和6.0.1)在Android Studio模拟器中测试我的应用程序,并且工作正常。当我从笔记本电脑上拔下电源并运行应用程序时,它崩溃了。

我的logcat说我正在尝试调用一个null数组...但是它不是null吗?我不明白为什么当我通过Android Studio在手机上运行该应用程序时一切正常,但是当我单独运行该应用程序时却崩溃了。感谢您的帮助!

这是我的日志

FATAL EXCEPTION: main
Process: com.example.abc.def, PID: 28693
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.abc.def/com.example.abc.def.MainActivity}: java.lang.NullPointerException: Attempt to read from null array
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.NullPointerException: Attempt to read from null array
at com.example.abc.def.MainActivity.onCreate(MainActivity.java:49)
at android.app.Activity.performCreate(Activity.java:6876)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:158) 
at android.app.ActivityThread.main(ActivityThread.java:7224) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 

这是我的代码。当我调用btn1.setText(itemArray [0])时,该问题出现在底部,因为该数组为“ null”

public class MainActivity extends AppCompatActivity {

Button btn1, btn2;
String btn1Name, btn2Name;
String btnValue = "", itemValue = "", itemPosition = "";
String[] buttonArray = new String[]{"blank", "blank"};
String[] itemArray = new String[]{"blank", "blank"};
String[] positionArray = new String[]{"blank", "blank"};  

@Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn1 = (Button) findViewById(R.id.button1);
    btn2 = (Button) findViewById(R.id.button2);

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        btnValue = extras.getString("btnValue");
        itemValue = extras.getString("itemValue");
        itemPosition = extras.getString("itemPosition");

        buttonArray = extras.getStringArray("buttonArray");
        itemArray = extras.getStringArray("array");
        positionArray = extras.getStringArray("positionArray");

        if (btnValue != null && btnValue.equals("btn1")){
            buttonArray[0] = btnValue;
            itemArray[0] = itemValue;
            positionArray[0] = itemPosition;
        } else if (btnValue != null && btnValue.equals("btn2")) {
            buttonArray[1] = btnValue;
            itemArray[1] = itemValue;
            positionArray[1] = itemPosition;
        }
    }

    btn1.setText(itemArray[0]);
    btn2.setText(itemArray[1]);
}
}
罗伊·福克(Roy Falk)

我在这里猜测,但是MainActivity是项目中的第一个活动吗?

我认为您编写了处理来自其他活动的数据以返回此活动的代码。我刚刚尝试过,当首次在模拟器上创建活动时getIntent()。getExtras()返回null。但是,当我在设备上运行它时,getIntent生成了此异常。

注意onCreate被调用一次,因此,如果您想查看其他活动的结果,请看一下如何在Android上管理`startActivityForResult`?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AVAudioPlayer可在模拟器上运行,但不能在真实设备上运行

来自分类Dev

textCapSentences可在模拟器上运行,但不能在真实设备上运行

来自分类Dev

Swift HTTP请求可在模拟器上运行,但不能在真实设备中运行

来自分类Dev

Swift HTTP请求可在模拟器上运行,但不能在真实设备中运行

来自分类Dev

Android App不是在模拟器上运行,而是在真实设备上运行

来自分类Dev

在Android中使用XML的Admob广告,广告可以在模拟器上正确显示,但不能在真实设备上显示

来自分类Dev

在Android中使用XML的Admob广告,广告可以在模拟器上正确显示,但不能在真实设备上显示

来自分类Dev

Android 应用程序在真实设备上安装后崩溃,但在模拟器中运行良好

来自分类Dev

Android应用只能在模拟器上运行,而不能在设备上运行

来自分类Dev

Android应用程序可以在真实手机上运行,但不能在模拟器上运行-Android开发吗?

来自分类Dev

引导接收器可在模拟器上运行,但不能在Android实际手机上

来自分类Dev

httpClient.get在模拟器上可以,但不能在android设备上使用

来自分类Dev

UIButton图像可在模拟器上运行,但不能在设备上运行

来自分类Dev

意图过滤器可在模拟器上运行,但不能在设备上运行

来自分类Dev

LeavesCache.m可在模拟器上运行,但不能在设备上运行

来自分类Dev

应用程序可在 Unity 编辑器中运行,但不能在 Android 上运行

来自分类Dev

碰撞可在PC模拟器上工作,但不能在Android设备上工作

来自分类Dev

Android Studio需要太长时间才能在真实设备上运行该应用程序

来自分类Dev

Android Studio需要太长时间才能在真实设备上运行该应用程序

来自分类Dev

jQuery函数可在网络浏览器上运行,但不能在android设备上运行

来自分类Dev

Swift应用在真实设备上崩溃但可在模拟器上运行

来自分类Dev

hitTestObject可在PC上运行,但不能在android设备上运行

来自分类Dev

iOS项目可在iPhone上运行,但不能在模拟器中运行

来自分类Dev

该APP可在模拟器中运行,但不能在真实手机中运行

来自分类Dev

应用程序可在模拟器上运行,但不能在设备上运行。错误消息?XCODE

来自分类Dev

应用程序可在模拟器上运行,但不能在设备上运行。错误消息?XCODE

来自分类Dev

Android在设备上运行,但在模拟器上崩溃

来自分类Dev

在真实设备上使用Android模拟器进行应用开发时,我会遇到什么陷阱?

来自分类Dev

在真实设备上运行Appium测试-android

Related 相关文章

  1. 1

    AVAudioPlayer可在模拟器上运行,但不能在真实设备上运行

  2. 2

    textCapSentences可在模拟器上运行,但不能在真实设备上运行

  3. 3

    Swift HTTP请求可在模拟器上运行,但不能在真实设备中运行

  4. 4

    Swift HTTP请求可在模拟器上运行,但不能在真实设备中运行

  5. 5

    Android App不是在模拟器上运行,而是在真实设备上运行

  6. 6

    在Android中使用XML的Admob广告,广告可以在模拟器上正确显示,但不能在真实设备上显示

  7. 7

    在Android中使用XML的Admob广告,广告可以在模拟器上正确显示,但不能在真实设备上显示

  8. 8

    Android 应用程序在真实设备上安装后崩溃,但在模拟器中运行良好

  9. 9

    Android应用只能在模拟器上运行,而不能在设备上运行

  10. 10

    Android应用程序可以在真实手机上运行,但不能在模拟器上运行-Android开发吗?

  11. 11

    引导接收器可在模拟器上运行,但不能在Android实际手机上

  12. 12

    httpClient.get在模拟器上可以,但不能在android设备上使用

  13. 13

    UIButton图像可在模拟器上运行,但不能在设备上运行

  14. 14

    意图过滤器可在模拟器上运行,但不能在设备上运行

  15. 15

    LeavesCache.m可在模拟器上运行,但不能在设备上运行

  16. 16

    应用程序可在 Unity 编辑器中运行,但不能在 Android 上运行

  17. 17

    碰撞可在PC模拟器上工作,但不能在Android设备上工作

  18. 18

    Android Studio需要太长时间才能在真实设备上运行该应用程序

  19. 19

    Android Studio需要太长时间才能在真实设备上运行该应用程序

  20. 20

    jQuery函数可在网络浏览器上运行,但不能在android设备上运行

  21. 21

    Swift应用在真实设备上崩溃但可在模拟器上运行

  22. 22

    hitTestObject可在PC上运行,但不能在android设备上运行

  23. 23

    iOS项目可在iPhone上运行,但不能在模拟器中运行

  24. 24

    该APP可在模拟器中运行,但不能在真实手机中运行

  25. 25

    应用程序可在模拟器上运行,但不能在设备上运行。错误消息?XCODE

  26. 26

    应用程序可在模拟器上运行,但不能在设备上运行。错误消息?XCODE

  27. 27

    Android在设备上运行,但在模拟器上崩溃

  28. 28

    在真实设备上使用Android模拟器进行应用开发时,我会遇到什么陷阱?

  29. 29

    在真实设备上运行Appium测试-android

热门标签

归档