お世話になります。KOTLINです。
以下2行のコードを以下ソースに加えると、ボタンを押してwebviewを起動した時に強制終了されてしまいます。
エラー全文は後述しますが以下がエラーです。
java.lang.IllegalStateException: root.findViewById(R.id.webview) must not be null
これが加えたコードです。このコードをなくせば当然処理は走りますがweb表示できません。
val myWebView: WebView = root.findViewById(R.id.webview) myWebView.loadUrl("https://www.google.com")
#試したコード
sampleFragment.k.kt ui配下にModelと一緒に配置されているファイルです。
package com.myapplication.ui.reaction import android.os.Bundle import android.webkit.WebView import android.webkit.WebViewClient import com.google.android.material.bottomnavigation.BottomNavigationView import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProviders import com.myapplication.R class ReactionFragment : Fragment() { private lateinit var reactionViewModel: ReactionViewModel override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { reactionViewModel = ViewModelProviders.of(this).get(ReactionViewModel::class.java) val root = inflater.inflate(R.layout.fragment_reaction, container, false) val textView: TextView = root.findViewById(R.id.text_reaction) reactionViewModel.text.observe(this, Observer { textView.text = it }) val myWebView: WebView = root.findViewById(R.id.webview) myWebView.loadUrl("https://www.google.com") return root } }
#該当するボタンを押したタイミングで強制終了されます。エラーは以下
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.myapplication, PID: 10307 java.lang.IllegalStateException: root.findViewById(R.id.webview) must not be null at com.myapplication.ui.reaction.ReactionFragment.onCreateView(ReactionFragment.kt:35) at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881) at androidx.fragment.app.FragmentManagerImpl.addAddedFragments(FragmentManagerImpl.java:2100) at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1874) at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1830) at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727) at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Process 10307 terminated. ```。k
あなたの回答
tips
プレビュー