Java “这是为什么?”;不幸的是,你的应用程序崩溃了;?
我是全新的,我正在新波士顿学习编码 MainActivity.java:Java “这是为什么?”;不幸的是,你的应用程序崩溃了;?,java,android,Java,Android,我是全新的,我正在新波士顿学习编码 MainActivity.java: package com.tipsoftech.fastfart; import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.view.View; import android.view.Window; import android.view.WindowManager; im
package com.tipsoftech.fastfart;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
public class MainActivity extends Activity {
MediaPlayer fartsound = MediaPlayer.create(MainActivity.this,
R.raw.fartsound);
Button fartnow = (Button) findViewById(R.id.bFartNow);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Full screen Open
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// Full screen Close
fartnow.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
fartsound.start();
}
});
}
}
活动_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
tools:context=".MainActivity" >
<ImageButton
android:id="@+id/bFartNow"
android:contentDescription="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/fartnow" />
</RelativeLayout>
我很肯定我没有把@drawable/东西弄糟。但每当我试图在模拟器上运行应用程序时,它就会说“不幸的是,Fast Fart崩溃了。”。我不知道发生了什么事,如果有人帮我,我会非常高兴的。我是一个新的开发人员,我只有14岁。请帮帮我。你需要在膨胀布局后检索你的UI元素,否则
findViewById
返回null
,因此NullPointerException
行fartnow.setOnClickListener
会导致你的应用程序崩溃
以下是修复方法:
Button fartnow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main); //layout inflated
fartnow = (Button) findViewById(R.id.bFartNow); //now it's ok
正如注释中指出的,必须在setContentView()之前被调用
请注意,当出现此类错误时,您应该始终阅读/发布stacktrace,它应该告诉您发生错误的行,这样您就可以更轻松地调试应用程序。在扩展布局后,您需要检索UI元素,否则,findViewById
返回null
,从而在fartnow.setOnClickListener
行返回NullPointerException
,这会导致应用程序崩溃
以下是修复方法:
Button fartnow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main); //layout inflated
fartnow = (Button) findViewById(R.id.bFartNow); //now it's ok
正如注释中指出的,必须在setContentView()之前被调用
请注意,当出现此类错误时,您应该始终读取/发布stacktrace,它应该告诉您发生错误的行,这样您就更容易调试应用程序了。在onCreate()方法中的setContentView()方法之后写入这一行-
在onCreate()方法中的setContentView()方法之后写这一行-
使用logcat将告诉您代码中发生了什么,从而导致代码崩溃。您还可以在eclipse中使用window>show view>logcat直接查看代码。这将为您提供一个堆栈跟踪。使用logcat将告诉您代码中发生了什么,从而导致代码崩溃。您还可以在eclipse中使用window>show view>logcat直接查看它。这将为您提供堆栈跟踪。因此,在setContentView()
之前需要调用requestWindowFeature
,但不幸的是,快速放屁已经停止@用户3177771发布更新的代码和堆栈跟踪。或者问一个新问题。另外,requestWindowFeature
需要在setContentView()
之前调用。不幸的是,快速放屁已经停止@用户3177771发布更新的代码和堆栈跟踪。或者问一个新问题。