尝试输入片段后应用崩溃

时间:2018-04-02 10:59:43

标签: java android nullpointerexception onclicklistener

您好我的问题是关于我试图点击下一个片段后我的应用程序崩溃了。 代码正在编译,但我不知道如何解决这个问题。 onclicklistner的东西。 我尝试了一些解决方案,但没有成功。

这是我的代码:

ProfileFragment.java

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.statusionew.statusio, PID: 9206
                  java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
                      at com.statusionew.statusio.fragments.ProfileFragment.onCreate(ProfileFragment.java:65)
                      at android.support.v4.app.Fragment.performCreate(Fragment.java:2339)
                      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1377)
                      at android.support.v4.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1109)
                      at android.support.v4.app.FragmentTransition.calculateFragments(FragmentTransition.java:996)
                      at android.support.v4.app.FragmentTransition.startTransitions(FragmentTransition.java:99)
                      at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2364)
                      at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322)
                      at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229)
                      at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:781)
                      at com.statusionew.statusio.views.FragNavController.executePendingTransactions(FragNavController.java:631)
                      at com.statusionew.statusio.views.FragNavController.switchTab(FragNavController.java:142)
                      at com.statusionew.statusio.views.FragNavController.switchTab(FragNavController.java:158)
                      at com.statusionew.statusio.MainActivity.switchTab(MainActivity.java:149)
                      at com.statusionew.statusio.MainActivity.access$100(MainActivity.java:30)
                      at com.statusionew.statusio.MainActivity$1.onTabSelected(MainActivity.java:87)
                      at android.support.design.widget.TabLayout.dispatchTabSelected(TabLayout.java:1165)
                      at android.support.design.widget.TabLayout.selectTab(TabLayout.java:1158)
                      at android.support.design.widget.TabLayout.selectTab(TabLayout.java:1128)
                      at android.support.design.widget.TabLayout$Tab.select(TabLayout.java:1427)
                      at android.support.design.widget.TabLayout$TabView.performClick(TabLayout.java:1537)
                      at android.view.View$PerformClick.run(View.java:22429)
                      at android.os.Handler.handleCallback(Handler.java:751)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6119)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Connected to process 10580 on device emulator-5554
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/art: Not late-enabling -Xcheck:jni (already on)
W/art: Unexpected CPU variant for X86 using defaults: x86
W/System: ClassLoader referenced unknown path: /data/app/com.statusionew.statusio-1/lib/x86
D/FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
V/FA: Registered activity lifecycle callback
I/FirebaseInitProvider: FirebaseApp initialization successful
I/InstantRun: starting instant run server: is main process
E/InstantRun: IO Error creating local socket at com.statusionew.statusio
              java.io.IOException: Address already in use
                  at android.net.LocalSocketImpl.bindLocal(Native Method)
                  at android.net.LocalSocketImpl.bind(LocalSocketImpl.java:308)
                  at android.net.LocalServerSocket.<init>(LocalServerSocket.java:48)
                  at com.android.tools.ir.server.Server.<init>(Server.java:91)
                  at com.android.tools.ir.server.Server.create(Server.java:85)
                  at com.android.tools.ir.server.InstantRunContentProvider.onCreate(InstantRunContentProvider.java:49)
                  at android.content.ContentProvider.attachInfo(ContentProvider.java:1751)
                  at android.content.ContentProvider.attachInfo(ContentProvider.java:1726)
                  at android.app.ActivityThread.installProvider(ActivityThread.java:5853)
                  at android.app.ActivityThread.installContentProviders(ActivityThread.java:5445)
                  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5384)
                  at android.app.ActivityThread.-wrap2(ActivityThread.java)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:154)
                  at android.app.ActivityThread.main(ActivityThread.java:6119)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

这个日志说'尝试调用虚方法' -

composer require doctrine/annotations

1 个答案:

答案 0 :(得分:1)

看起来你对Fragments和ButterKnife的工作方式有一些误解。

OnCreate在片段中被称为BEFORE onCreateView。因此,当您尝试在onCreate中访问它们时,所有视图都为null 请参阅片段生命周期:
https://www.tutorialspoint.com/android/images/fragment.jpg

OnCreate在Fragments中使用的不多,onCreateView使用的更多。

您的ButterKnife绑定代码也是错误的。您正在尝试将Activity绑定到Fragment中的视图。 有关正确用法,请参阅ButterKnife文档:http://jakewharton.github.io/butterknife/