我正在尝试创建一个包含多个标签的应用程序,现在我只需要担心标签。我遇到的问题是,当我取消注释setOnClickListener按钮时,它会在尝试在AVD上运行时给出错误。 这是我的主要功能 `
@Override
public void onCreate(Bundle Bgilca) {
Button blade;
super.onCreate(Bgilca);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
launchMusic = MediaPlayer.create(main.this, R.raw.powerup);
launchMusic.start();
Thread launchTime = new Thread(){
public void run(){
try{
sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
launchMusic.pause();
}
}
};launchTime.start();
}
Button blade = (Button)findViewById(R.id.fantab);
}`
当尝试在AVD中执行时,应用程序崩溃,发出消息“不幸的是app_name已停止”
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.bgilcag60"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".main"
android:label="@string/app_name"
android:screenOrientation ="portrait"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ventscreen"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.example.bgilag60.ventscreen" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
这是我的Layout.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"
android:keepScreenOn="true"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
android:paddingBottom="0dp"
tools:context="com.example.bgilcag60.main" >
<Button
android:id="@+id/scaunstg"
android:layout_width="170dp"
android:layout_height="70dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:background="@drawable/scaunstg"
android:baselineAlignBottom="true"
android:clickable="true" />
<Button
android:id="@+id/scaundr"
android:layout_width="170dp"
android:layout_height="70dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="@drawable/scaundr"
android:baselineAlignBottom="true"
android:clickable="true" />
<Button
android:id="@+id/home"
android:layout_width="160dp"
android:layout_height="80dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:background="@drawable/corrado_home"
android:clickable="true" />
<Button
android:id="@+id/head"
android:layout_width="66dp"
android:layout_height="80dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/head_tab"
android:clickable="true" />
<Button
android:id="@+id/navi"
android:layout_width="66dp"
android:layout_height="70dp"
android:layout_alignParentTop="true"
android:layout_marginRight="95dp"
android:layout_toLeftOf="@+id/head"
android:background="@drawable/navi_tab"
android:clickable="true" />
<Button
android:id="@+id/fantab"
android:layout_width="66dp"
android:layout_height="66dp"
android:layout_alignParentTop="true"
android:layout_marginRight="95dp"
android:layout_toLeftOf="@+id/navi"
android:background="@drawable/fan_tab"
android:clickable="true" />
</RelativeLayout>
这是我的logcat
http://i.stack.imgur.com/UDUQC.png
任何想法?
答案 0 :(得分:0)
错误是关于此行的空指针:
Button blade = (Button)findViewById(R.id.fantab);
由于xml中有按钮,因此很可能没有指向正确的布局文件:
setContentView(R.layout.main);
这意味着布局文件必须是main.xml
,或者您将代码更改为指向正确的布局。
setContentView(R.layout.Layout);//from your post "here is my Layout.xml"
答案 1 :(得分:0)
cause by: java.lang.NullPointerException
at android.app...FindviewbyID
at android.app.....main<init>(main.java:48);
问题是有错误引用的findviewbyID对象。在第48行仔细检查。
答案 2 :(得分:0)
findViewById
在<{1}}方法之外,不在任何方法中。
您还要定义onCreate
两次。
因此,一旦您定义了按钮刀片,然后在引用它时,您就不应该再次定义它。
所以你的行应该是 -
Button blade
答案 3 :(得分:0)
显然问题是findViewById是在OnCreate函数的括号之后。谢谢你的回答。