Android软件闪退:为什么代码在setContentView()之前调用findViewById()会导致闪退?
android软件闪退
一位android初学者在模拟器上运行代码时遇到闪退问题,以下是他提供的代码:
public class mainactivity extends appcompatactivity { final webview webview = findviewbyid(r.id.webview); // ... }
问题:
问题出在代码中过早调用findviewbyid()函数。在调用setcontentview()设置布局之前,findviewbyid()无法找到任何视图。
解决方案:
将findviewbyid()调用移动到setcontentview()之后,如下所示:
public class MainActivity extends AppCompatActivity { WebView webView; // ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.webView = findViewById(R.id.WebView); // ... } }
现在,setcontentview()将加载布局并渲染视图,然后findviewbyid()才能正确找到webview视图。这样就可以解决闪退问题。
以上就是Android软件闪退:为什么代码在setContentView()之前调用findViewById()会导致闪退?的详细内容,更多请关注其它相关文章!