我有一个申请。主要活动有一个页面,有一个按钮。此按钮仅打开另一个活动。不过这是问题所在。当我在肖像模式下执行此操作时,它可以完美地工作。即使在活动开始后,我也可以将其更改为横向模式,并且工作正常。应用程序仅在第一个活动处于横向模式时崩溃,我单击按钮以启动新活动。任何想法我应该如何解决这个问题?为什么它只在启动期间不起作用?为什么在我以纵向模式启动它后才能在横向模式下正常工作?
我注意到另一个有趣的事情,我删除了横向文件夹中的布局xml文件,它不再崩溃。
04-26 15:09:50.558: E/AndroidRuntime(7034): FATAL EXCEPTION: main
04-26 15:09:50.558: E/AndroidRuntime(7034): Process: com.example.msapp2, PID: 7034
04-26 15:09:50.558: E/AndroidRuntime(7034): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.msapp2/com.example.msapp2.exercises.WorkoutBuddy}: java.lang.NullPointerException
04-26 15:09:50.558: E/AndroidRuntime(7034): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-26 15:09:50.558: E/AndroidRuntime(7034): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-26 15:09:50.558: E/AndroidRuntime(7034): at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-26 15:09:50.558: E/AndroidRuntime(7034): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
答案 0 :(得分:4)
有可能发生的事情是,您可能正在获取对纵向(/layouts/activity*.xml)布局中存在的布局元素的引用,但在您的横向布局中不存在(/layouts-land/activity*.xml)。
例如,
Button button = (Button) findviewbyid(R.id.myButton);
如果您因为其中有<Button />
元素而处于纵向状态,则可能会有效。但是您的横向布局没有相同的元素。
这导致NullPointerException
,这是你得到的例外。当您尝试访问尚未初始化的对象时,会发生此问题。所以请留意你在做什么。