android - 无法在 Android 的 Tabbar 应用程序中添加 AlertDialog?

标签 android crash tabbar android-alertdialog

我已经为Android添加了标签栏,它对于 View 来说工作得很好,但是当我尝试AlertDialogs时,应用程序似乎崩溃了,我添加了日志猫。请就如何解决这个问题向我提出建议。谢谢

01-08 04:14:21.575: E/AndroidRuntime(381): FATAL EXCEPTION: main 01-08 04:14:21.575: E/AndroidRuntime(381): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.CarBuyCo/com.CarBuyCo.Tabbed}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.CarBuyCo/com.CarBuyCo.TabGroup1Activity}: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.CarBuyCo/com.CarBuyCo.Scroller}: java.lang.IllegalStateException: System services not available to Activities before onCreate() 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.os.Handler.dispatchMessage(Handler.java:99) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.os.Looper.loop(Looper.java:130) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.main(ActivityThread.java:3687) 01-08 04:14:21.575: E/AndroidRuntime(381): at java.lang.reflect.Method.invokeNative(Native Method) 01-08 04:14:21.575: E/AndroidRuntime(381): at java.lang.reflect.Method.invoke(Method.java:507) 01-08 04:14:21.575: E/AndroidRuntime(381): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 01-08 04:14:21.575: E/AndroidRuntime(381): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 01-08 04:14:21.575: E/AndroidRuntime(381): at dalvik.system.NativeStart.main(Native Method) 01-08 04:14:21.575: E/AndroidRuntime(381): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.CarBuyCo/com.CarBuyCo.TabGroup1Activity}: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.CarBuyCo/com.CarBuyCo.Scroller}: java.lang.IllegalStateException: System services not available to Activities before onCreate() 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.startActivityNow(ActivityThread.java:1491) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:657) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.widget.TabHost.setCurrentTab(TabHost.java:329) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.widget.TabHost.addTab(TabHost.java:219) 01-08 04:14:21.575: E/AndroidRuntime(381): at com.CarBuyCo.Tabbed.addTab1(Tabbed.java:51) 01-08 04:14:21.575: E/AndroidRuntime(381): at com.CarBuyCo.Tabbed.setTabs(Tabbed.java:31) 01-08 04:14:21.575: E/AndroidRuntime(381): at com.CarBuyCo.Tabbed.onCreate(Tabbed.java:23) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 01-08 04:14:21.575: E/AndroidRuntime(381): ... 11 more 01-08 04:14:21.575: E/AndroidRuntime(381): Caused by: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.CarBuyCo/com.CarBuyCo.Scroller}: java.lang.IllegalStateException: System services not available to Activities before onCreate() 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.startActivityNow(ActivityThread.java:1491) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339) 01-08 04:14:21.575: E/AndroidRuntime(381): at com.CarBuyCo.TabGroupActivity.startChildActivity(TabGroupActivity.java:61) 01-08 04:14:21.575: E/AndroidRuntime(381): at com.CarBuyCo.TabGroup1Activity.onCreate(TabGroup1Activity.java:10) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 01-08 04:14:21.575: E/AndroidRuntime(381): ... 22 more 01-08 04:14:21.575: E/AndroidRuntime(381): Caused by: java.lang.IllegalStateException: System services not available to Activities before onCreate() 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.Activity.getSystemService(Activity.java:3536) 01-08 04:14:21.575: E/AndroidRuntime(381): at com.android.internal.app.AlertController$AlertParams.(AlertController.java:747) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.AlertDialog$Builder.(AlertDialog.java:273) 01-08 04:14:21.575: E/AndroidRuntime(381): at com.CarBuyCo.Scroller.makeAndShowDialogBox(Scroller.java:459) 01-08 04:14:21.575: E/AndroidRuntime(381): at com.CarBuyCo.Scroller.(Scroller.java:33) 01-08 04:14:21.575: E/AndroidRuntime(381): at java.lang.Class.newInstanceImpl(Native Method) 01-08 04:14:21.575: E/AndroidRuntime(381): at java.lang.Class.newInstance(Class.java:1409) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 01-08 04:14:21.575: E/AndroidRuntime(381): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1565) 01-08 04:14:21.575: E/AndroidRuntime(381): ... 29 more

最佳答案

正如日志所示,在调用 Activity 的 oncreate 之前,您无法获取系统服务。 因此,将 getSystemService 调用移至 Oncreate 或之后。

此外,您试图在滚动条本身的构造函数中显示对话框,并且也许您正在将滚动条实例化为字段。将对话框部分移动到其他位置

关于android - 无法在 Android 的 Tabbar 应用程序中添加 AlertDialog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8773770/

相关文章:

jquery - 使用 Jquery 的类似 Tabbar 的效果

c# - Windows 10 崩溃侦探

ios - 是否可以在标签栏项目上绘制在线图像?

iOS7无法隐藏tabbar、黑条

java - 如何从 ListView 中删除选定的项目?

c# - 使用 WebClient() 下载文件时如何避免应用程序崩溃;

ms-access - 遍历表和更改值时 Access 崩溃

android - 如何以编程方式缩小按钮并相应地重新排列布局的其余部分?

java - PendingIntent.getBroadcast 不适用于通知抽屉中的默认通知单击/触摸事件 - Android Studio 2.3.3 + Java

android - 解析推送通知 - 关闭应用程序时不会出现警告对话框