如何远程调试webview?
问题原因:onCreate方法不存在或者没有正确重写,导致编译错误。
解决方法:
1. 在MainActivity.java中重写onCreate方法,并添加一行代码WebView.setWebContentsDebuggingEnabled(true)。
2. 确保导入了必要的包。
3. 构建代码,将应用程序打开在手机上。
4. 在浏览器中输入chrome://inspect,可以看到应用程序在列表中。
5. 点击inspect链接进行调试。
下面是修改后的代码:
package com.myapp; import com.facebook.react.ReactActivity; import android.webkit.WebView; public class MainActivity extends ReactActivity { protected String getMainComponentName() { return "myapp"; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView.setWebContentsDebuggingEnabled(true); } }
感谢您的回答。在React Native v0.57.3中,不需要导入android.os.Bundle,因为对于onCreate方法不再需要。
我认为onCreate方法不再存在了,我得到了错误信息no suitable method found for onCreate(no arguments)。
问题的出现原因:Webview在远程调试时遇到了问题。
解决方法:
1. 在设备中启用开发者选项(设置-->关于手机-->点击7次版本号)
2. 打开开发者选项并启用USB调试(在开发者选项中)
3. 在自定义的Application类或加载Web View的Activity中添加以下代码:
if (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)) { WebView.setWebContentsDebuggingEnabled(true); }
4. 在Chrome浏览器中输入`chrome://inspect/#devices`,你应该能看到你的设备在远程目标列表中
5. 点击inspect进行调试
更新:
你可以简化代码,像下面这样:
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG)
这需要将手机连接到USB吗?如果我在模拟器中测试应用程序怎么办?
DEVIN是的,你需要通过USB连接。如果你想无需USB连接进行调试,请参考我的这个回答:stackoverflow.com/a/44442586/2462531
为什么你编辑了一下?我认为只有一个`&`符号是正确的。
回滚了,我以为还缺一个`&`符号。
更现代的方式是:
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG)
如何调试实时页面?