![](/img/trans.png)
[英]java.lang.RuntimeException: ImageReaderContext is not initialized
[英]Error in B4A: java.lang.RuntimeException: Object should first be initialized (EditText)
我最近開始學習 B4A (Basic For Android),它是一個 IDE,可用於制作 Android 應用程序。
不幸的是,我在執行代碼時遇到了一個錯誤,我不知道如何修復它。
錯誤是:java.lang.RuntimeException: Object 應該首先被初始化(EditText)。
我不知道為什么會收到此錯誤,請幫忙!
代碼:
#Region Project Attributes
#ApplicationLabel: Chatbot
#VersionCode: 1
#VersionName:
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#End Region
#Region Activity Attributes
#FullScreen: True
#IncludeTitle: True
#End Region
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Private xui As XUI
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
Public Label1 As Label
Public TBox As EditText
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout")
End Sub
Sub Activity_Resume
Activity.LoadLayout("Layout")
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
Private Label1 As Label
Private TBox As EditText
If TBox.Text = "hello" Then
Label1.Text = "Hi!"
Else
Label1.Text = "Invalid Command"
End If
End Sub
完整錯誤日志:
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
main_button1_click (java line: 372)
java.lang.RuntimeException: Object should first be initialized (EditText).
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:67)
at anywheresoftware.b4a.objects.TextViewWrapper.getText(TextViewWrapper.java:36)
at b4a.example.main._button1_click(main.java:372)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
at android.view.View.performClick(View.java:5638)
at android.view.View$PerformClick.run(View.java:22430)
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:6198)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
請幫忙!!!!
問題是由於您兩次加載布局而引起的。 Activity_Create 和 Activity_Resume 在應用啟動時都會被調用。
您可以在此處找到有關應用程序生命周期的更多信息: https://www.b4x.com/android/forum/threads/android-activity-lifecycle.105551/#post-661112
我還建議你看看使用 B4xPages - https://www.b4x.com/android/forum/threads/b4x-b4xpages-cross-platform-and-simple-framework-for-managing-multiple-pages.118901/后 743752 。
即使對於單頁應用程序,使用該框架的生命周期問題也不會成為問題。
ADDL:您在 Button1_Click 事件子中聲明 Label1 和 TBox,請嘗試刪除它們。 它們已經在 Globals 中聲明,不需要再次聲明。
您必須首先初始化文本框,然后使用:
textbox.initialize("EventName")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.