2015-06-22 64 views
-6

我有一個帶有片段的android應用程序,它有一個按鈕,在點擊它時會導致一個Activity。當我在我的設備上運行應用程序時,它返回一個錯誤。林只是困惑原因一切似乎是正確的,但然後它返回這個錯誤。請幫我看看我的錯誤。謝謝!按鈕上的NullPointerException

06-22 17:32:58.103: E/AndroidRuntime(32096): Process: com.samsung.android.example.helloaccessoryprovider, PID: 32096 
06-22 17:32:58.103: E/AndroidRuntime(32096): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.samsung.android.example.helloaccessoryprovider 
com.samsung.android.example.helloaccessoryprovider.Portfolio_AddImageToConsultation}: 
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread.access$900(ActivityThread.java:177) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.os.Handler.dispatchMessage(Handler.java:102) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.os.Looper.loop(Looper.java:145) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread.main(ActivityThread.java:5942) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at java.lang.reflect.Method.invoke(Native Method) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at java.lang.reflect.Method.invoke(Method.java:372) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195) 
06-22 17:32:58.103: E/AndroidRuntime(32096): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 
06-22 17:32:58.103: E/AndroidRuntime(32096): at com.samsung.android.example.helloaccessoryprovider.Portfolio_AddImageToConsultation.onCreate(Portfolio_AddImageToConsultation.java:86) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.Activity.performCreate(Activity.java:6289) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
06-22 17:32:58.103: E/AndroidRuntime(32096): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) 
06-22 17:32:58.103: E/AndroidRuntime(32096): ... 10 more 

這是我的代碼

public class Portfolio extends Fragment { 
Button cam; 
Intent addEvent; 
public Portfolio() { 
    // Required empty public constructor 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View view = inflater.inflate(R.layout.fragment_portfolio, 
    container, false); 

    cam = (Button) view.findViewById(R.id.camerabutton); 
    cam.setOnClickListener(addbutton); 

    return view; 
} 
OnClickListener addbutton = new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     addEvent = new Intent(getActivity(), Portfolio_AddImageToConsultation.class); 
     startActivity(addEvent); 
    } 
}; 

這是我的佈局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" 
android:baselineAligned="false" 
tools:context=".MainActivity" > 
<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 
<Button 
    android:id="@+id/camerabutton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Sign Up" /> 

+4

你在哪裏調用這個Fragment?看起來你是用這個Fragment類作爲Launcher,這是不正確的。你應該在Activity中使用Fragment 。 – Durgesh

+0

是的,我有一個FragmentManager在另一個活動類 – Claudia

回答

0

是你粘貼代碼這裏是fragment_portfolio佈局?因爲你必須用按鈕膨脹佈局,而不是任何其他佈局。也嘗試刪除tools:context=".MainActivity"可能會有所幫助。

+0

是的,這是fragment_portfolio:/我試圖刪除工具:上下文然後它給了我這個錯誤 06-22 21:01:05.040:E/AndroidRuntime(24226):java.lang。 RuntimeException:無法啓動活動ComponentInfo {com.samsung.android.example.helloaccessoryprovider/com.samsung.android.example.helloaccessoryprovider.Portfolio_AddImageToConsultation}:java.lang.NullPointerException:嘗試調用虛擬方法'void android.widget.Button。 setOnClickListener(android.view.View $ OnClickListener)'對空引用 – Claudia

0

我發現問題了!原來我在Patien_AddImageToConsultation類中使用了不屬於android應用程序的不同佈局

相關問題