Android运行时异常Eclipse
大家好,我正试着做一个单位转换器,但当我运行它时,它会停止并向我展示 05-15:30:45.237:D/AndroidRuntime(333):关闭虚拟机 05-15:30:45.237:W/dalvikvm(333):threadid=1:线程以未捕获异常退出(组=0x40015560) 05-15:30:45.288:E/AndroidRuntime(333):致命异常:主 05-15 15:30:45.288:E/AndroidRuntime(333):java.lang.RuntimeException:无法实例化活动组件信息{org.alaenvargut.conversor/org.alaenvargut.conversor.MainActivity}:java.lang.NullPointerException 05-15:30:45.288:E/AndroidRuntime(333):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569) 05-15:30:45.288:E/AndroidRuntime(333):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 05-15:30:45.288:E/AndroidRuntime(333):在android.app.ActivityThread.access$1500(ActivityThread.java:117) 05-15:30:45.288:E/AndroidRuntime(333):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 05-15:30:45.288:E/AndroidRuntime(333):在android.os.Handler.dispatchMessage(Handler.java:99)上 05-15:30:45.288:E/AndroidRuntime(333):在android.os.Looper.loop(Looper.java:123)上 05-15:30:45.288:E/AndroidRuntime(333):位于android.app.ActivityThread.main(ActivityThread.java:3683) 05-15:30:45.288:E/AndroidRuntime(333):位于java.lang.reflect.Method.Invokenactive(本机方法) 05-15:30:45.288:E/AndroidRuntime(333):位于java.lang.reflect.Method.invoke(Method.java:507) 05-15:30:45.288:E/AndroidRuntime(333):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 05-15:30:45.288:E/AndroidRuntime(333):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 05-15 15:30:45.288:E/AndroidRuntime(333):在dalvik.system.NativeStart.main(本地方法) 05-15:30:45.288:E/AndroidRuntime(333):由以下原因引起:java.lang.NullPointerException 05-15:30:45.288:E/AndroidRuntime(333):在android.app.Activity.findViewById(Activity.java:1647) 05-15:30:45.288:E/AndroidRuntime(333):位于org.alaenvargut.conversor.MainActivity。(MainActivity.java:13) 05-15:30:45.288:E/AndroidRuntime(333):位于java.lang.Class.newInstanceImpl(本机方法) 05-15:30:45.288:E/AndroidRuntime(333):在java.lang.Class.newInstance(Class.java:1409)上 05-15:30:45.288:E/AndroidRuntime(333):在android.app.Instrumentation.newActivity(Instrumentation.java:1021)上 05-15:30:45.288:E/AndroidRuntime(333):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561) 05-15:30:45.288:E/AndroidRuntime(333):。。。还有11个 这是我的主要代码Android运行时异常Eclipse,android,eclipse,exception,runtime,Android,Eclipse,Exception,Runtime,大家好,我正试着做一个单位转换器,但当我运行它时,它会停止并向我展示 05-15:30:45.237:D/AndroidRuntime(333):关闭虚拟机 05-15:30:45.237:W/dalvikvm(333):threadid=1:线程以未捕获异常退出(组=0x40015560) 05-15:30:45.288:E/AndroidRuntime(333):致命异常:主 05-15 15:30:45.288:E/AndroidRuntime(333):java.lang.Runtime
package org.alaenvargut.conversor;
import android.os.Bundle;
import android.app.Activity;
import android.widget.Spinner;
import android.widget.ArrayAdapter;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
public class MainActivity extends Activity implements OnItemSelectedListener{
public Spinner SUni = (Spinner) findViewById(R.id.spinner1);
public Spinner SFm = (Spinner) findViewById(R.id.spinner2);
public Spinner STo = (Spinner) findViewById(R.id.spinner3);
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter AUni = ArrayAdapter.createFromResource(this, R.array.Unidades, android.R.layout.simple_selectable_list_item);
AUni.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SUni.setAdapter(AUni);
SUni.setOnItemSelectedListener(this);
}
public void onItemSelected(AdapterView<?> parent, View view,int pos, long id)
{
if (parent.getId() == R.id.spinner1)
{
switch((int)id)
{
case(1):
{
}
case(2):
{
ArrayAdapter AFm = ArrayAdapter.createFromResource(this, R.array.Velocidad, android.R.layout.simple_selectable_list_item);
AFm.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
SFm.setAdapter(AFm);
}
default:
}
}
}
public void onNothingSelected(AdapterView<?> parent)
{
// Another interface callback
}
}
package org.alaenvargut.conversor;
导入android.os.Bundle;
导入android.app.Activity;
导入android.widget.Spinner;
导入android.widget.ArrayAdapter;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemSelectedListener;
公共类MainActivity扩展活动实现OnItemSelectedListener{
公共微调器SUni=(微调器)findViewById(R.id.spinner1);
公共微调器SFm=(微调器)findViewById(R.id.spinner2);
公共微调器STo=(微调器)findViewById(R.id.spinner3);
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter AUni=ArrayAdapter.createFromResource(这个,R.array.Unidades,android.R.layout.simple\u可选\u列表\u项);
AUni.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
SUni.setAdapter(AUni);
SUni.setonimselectedlistener(此);
}
已选择公共位置(AdapterView父项、视图、整数位置、长id)
{
if(parent.getId()==R.id.spinner1)
{
开关((int)id)
{
案例(1):
{
}
案例(2):
{
ArrayAdapter AFm=ArrayAdapter.createFromResource(这个,R.array.Velocidad,android.R.layout.simple_可选_列表_项);
AFm.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
设置适配器(AFm);
}
违约:
}
}
}
未选择公共无效(AdapterView父级)
{
//另一个接口回调
}
}
这是我的布局
<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="19dp"
android:text="@string/principal" />
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="15dp" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/spinner1"
android:layout_below="@+id/spinner1"
android:layout_marginTop="18dp"
android:text="@string/fm"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView2"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/spinner2"
android:layout_below="@+id/spinner2"
android:text="@string/to"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Spinner
android:id="@+id/spinner3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView3"
android:layout_centerHorizontal="true" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/spinner3"
android:layout_below="@+id/spinner3"
android:layout_marginTop="30dp"
android:text="@string/con" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button1"
android:layout_alignRight="@+id/spinner3"
android:layout_marginRight="29dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
这是我的xml文件
> <?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="Unidades">
<item >Volumen</item>
<item >Velocidad</item>
</string-array>
<string-array name="Velocidad">
<item >Km/h</item>
<item >M/h</item>
</string-array>
</resources>
>
体积
Velocidad
公里/小时
米/小时
知道这个异常吗?在onCreate()方法中设置布局之后,您只需初始化
微调器即可。请尝试以下方法:
public Spinner SUni;
public Spinner SFm;
public Spinner STo;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SUni = (Spinner) findViewById(R.id.spinner1);
SFm = (Spinner) findViewById(R.id.spinner2);
STo = (Spinner) findViewById(R.id.spinner3);
}