这个作为项目提供给我的基本应用程序应该很容易运行,但却给了我最困难的时间。 好吧,我评论了我的 Activity 中的所有内容,但仍然出现同样的错误。所以我认为错误是在 xml 文件中的某个地方。如果您能发现错误,请帮忙。是的,主文件相当大,但请仔细阅读。
Main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Gallery
android:id="@+id/gallery1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_marginTop="2dp">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="Length" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_marginTop="5dp">
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_marginTop="5dp">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="FROM" android:textColor="#FFFF00"/>
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/textView2"
android:ems="10"
android:inputType="numberDecimal" android:clickable="false" android:focusable="false" android:focusableInTouchMode="false">
<requestFocus />
</EditText>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="TO " android:textColor="#FFFF00" android:clickable="false" android:focusable="false" android:focusableInTouchMode="false"/>
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="15dp"
android:layout_toRightOf="@+id/textView3"
android:ems="10"
android:inputType="numberDecimal"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="center_horizontal" android:layout_marginTop="5dp">
<Button
android:id="@+id/b1"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="1"
/>
<Button
android:id="@+id/b2"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@+id/b1"
android:text="2" />
<Button
android:id="@+id/b3"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@+id/b2"
android:text="3" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="center">
<Button
android:id="@+id/b4"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="4" />
<Button
android:id="@+id/b5"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@+id/b4"
android:text="5" />
<Button
android:id="@+id/b6"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@+id/b5"
android:text="6" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="center">
<Button
android:id="@+id/b7"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="7" />
<Button
android:id="@+id/b8"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@+id/b7"
android:text="8" />
<Button
android:id="@+id/b9"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@+id/b8"
android:text="9" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="center">
<Button
android:id="@+id/bdot"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="." />
<Button
android:id="@+id/b0"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@+id/bdot"
android:text="0" />
<Button
android:id="@+id/bc"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="16dp"
android:layout_toRightOf="@+id/b0"
android:text="C" />
</RelativeLayout>
</LinearLayout>
字符串.xml
<?xml version="1.0" encoding="utf-8"?>
<string name="hello">Hello World, GurkhaActivity!</string>
<string name="app_name">Gurkha</string>
<string-array name="length">
<item>Metre</item>
<item>Centimetre</item>
<item>Kilometre</item>
</string-array>
<string-array name="weight">
<item>Gram</item>
<item>Kilogram</item>
<item>Milligram</item>
</string-array>
</resources>
attrs.xml//对于图库
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="HelloGallery">
<attr name="android:galleryItemBackground" />
</declare-styleable>
</resources>
list .xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sanjay.gurkha"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="3" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".GurkhaActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
日志猫:
03-24 01:30:03.729: D/AndroidRuntime(631): Shutting down VM
03-24 01:30:03.769: W/dalvikvm(631): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
03-24 01:30:03.939: E/AndroidRuntime(631): FATAL EXCEPTION: main
03-24 01:30:03.939: E/AndroidRuntime(631): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.sanjay.gurkha/com.sanjay.gurkha.GurkhaActivity}: java.lang.NullPointerException
03-24 01:30:03.939: E/AndroidRuntime(631): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
03-24 01:30:03.939: E/AndroidRuntime(631): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
03-24 01:30:03.939: E/AndroidRuntime(631): at android.app.ActivityThread.access$600(ActivityThread.java:123)
03-24 01:30:03.939: E/AndroidRuntime(631): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
03-24 01:30:03.939: E/AndroidRuntime(631): at android.os.Handler.dispatchMessage(Handler.java:99)
03-24 01:30:03.939: E/AndroidRuntime(631): at android.os.Looper.loop(Looper.java:137)
03-24 01:30:03.939: E/AndroidRuntime(631): at android.app.ActivityThread.main(ActivityThread.java:4424)
03-24 01:30:03.939: E/AndroidRuntime(631): at java.lang.reflect.Method.invokeNative(Native Method)
03-24 01:30:03.939: E/AndroidRuntime(631): at java.lang.reflect.Method.invoke(Method.java:511)
03-24 01:30:03.939: E/AndroidRuntime(631): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-24 01:30:03.939: E/AndroidRuntime(631): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-24 01:30:03.939: E/AndroidRuntime(631): at dalvik.system.NativeStart.main(Native Method)
03-24 01:30:03.939: E/AndroidRuntime(631): Caused by: java.lang.NullPointerException
03-24 01:30:03.939: E/AndroidRuntime(631): at android.app.Activity.findViewById(Activity.java:1794)
03-24 01:30:03.939: E/AndroidRuntime(631): at com.sanjay.gurkha.GurkhaActivity.<init>(GurkhaActivity.java:28)
03-24 01:30:03.939: E/AndroidRuntime(631): at java.lang.Class.newInstanceImpl(Native Method)
03-24 01:30:03.939: E/AndroidRuntime(631): at java.lang.Class.newInstance(Class.java:1319)
03-24 01:30:03.939: E/AndroidRuntime(631): at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
03-24 01:30:03.939: E/AndroidRuntime(631): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
03-24 01:30:03.939: E/AndroidRuntime(631): ... 11 more
最佳答案
错误位于 GurkhaActivity.java 构造函数中的第 28 行。
at com.sanjay.gurkha.GurkhaActivity.<init>(GurkhaActivity.java:28)
您是在 onCreate() 中还是在构造函数中调用 findViewById() ?它应该在 onCreate() 中。当您重写 Activity 时,通常不会弄乱构造函数。
关于java - 空指针异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846136/