gpt4 book ai didi

java - 为什么返回 "Unfortunately your app has crashed"?

转载 作者:行者123 更新时间:2023-12-01 18:37:58 27 4
gpt4 key购买 nike

我是个新人,正在从新的波士顿学习编码。

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;
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();
}
});
}

}

activity_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

正如评论中指出的,requestWindowFeature 必须setContentView()

之前调用

请注意,当出现此类错误时,您应该始终阅读/发布堆栈跟踪,它应该告诉您发生错误的行,这样您就可以更轻松地调试应用程序。

关于java - 为什么返回 "Unfortunately your app has crashed"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21022142/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com