【发布时间】:2017-04-08 22:03:28
【问题描述】:
我是 AndroidStudio 的新手,我正在研究 MySQL 与 JDBC 库的连接。
我没有编译错误,但是当我运行我的应用程序时,我收到了这个错误:
appname 已停止。
谢谢。
E/AndroidRuntime: 致命异常: main 进程:com.example.root14.yourapp,PID:6784 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.view.View android.view.View.findViewById(int)' 在 com.example.root14.yourapp.tab1.onCreateView(tab1.java:25) 在 android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1108) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290) 在 android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801) 在 android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1638) 在 android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:679) 在 android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143) 在 android.support.v4.view.ViewPager.populate(ViewPager.java:1240) 在 android.support.v4.view.ViewPager.populate(ViewPager.java:1088) 在 android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1614) 在 android.view.View.measure(View.java:19731) 在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 在 android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:700) 在 android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:90) 在 android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1364) 在 android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:765) 在 android.view.View.measure(View.java:19731) 在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 在 android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 在 android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135) 在 android.view.View.measure(View.java:19731) 在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 在 android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 在 android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 在 android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 在 android.view.View.measure(View.java:19731) 在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 在 android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 在 android.view.View.measure(View.java:19731) 在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 在 android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464) 在 android.widget.LinearLayout.measureVertical(LinearLayout.java:758) 在 android.widget.LinearLayout.onMeasure(LinearLayout.java:640) 在 android.view.View.measure(View.java:19731) 在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120) 在 android.widget.FrameLayout.onMeasure(FrameLayout.java:185) 在 com.android.internal.policy.DecorView.onMeasure(DecorView.java:687) 在 android.view.View.measure(View.java:19731) 在 android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2271) 在 android.view.ViewRootImpl.measureHierarchy (ViewRootImpl.java:1358) 在 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1607) 在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6301) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:871) 在 android.view.Choreographer.doCallbacks(Choreographer.java:683) 在 android.view.Choreographer.doFrame(Choreographer.java:619) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857) 在 android.os.Handler.handleCallback(Handler.java:751) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6077) 在 java.lang.reflect.Method.invoke(本机方法) 04-08 22:01:09.999 6784-6784/com.example.root14.yourapp E/AndroidRuntime: 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
【问题讨论】:
-
一般来说,出于安全和性能原因,Android 不应该使用直接 JDBC 连接。
-
发布一些代码,这两个答案应该是评论!照原样,误差范围太大
-
JDBC 适用于 vanilla java,它没有针对 android 操作系统进行优化,有 sqlite,但我推荐一种更快的方法,例如 nosql。事务基于对象关系映射。
标签: java android nullpointerexception mysql-connector