【问题标题】:Android Webview app shows black screen when i open itAndroid Webview 应用程序在我打开时显示黑屏
【发布时间】:2020-03-14 23:20:24
【问题描述】:

我在 andriod studio 中编译的 Android weview 应用程序在打开时立即崩溃并黑屏。该应用程序使用 iframe 嵌入 url。编译正常,但当我打开它时崩溃并出现黑屏。

为什么会崩溃?

public class MainActivity extends AppCompatActivity {
    private WebView zwebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String Video;
        Video  = "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/eGPbD-f0b_A\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>";
        WebSettings webSettings = zwebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        zwebView.setInitialScale(1);
        zwebView.getSettings().setAllowFileAccess(true);
        zwebView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
        zwebView.setWebChromeClient(new WebChromeClient());
        zwebView.getSettings().setJavaScriptEnabled(true);
        zwebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        zwebView.getSettings().setLoadWithOverviewMode(true);
        zwebView.getSettings().setUseWideViewPort(true);

        zwebView.getSettings().setAppCacheEnabled(true);

        zwebView.loadData(Video, "text/html", "utf-8");

        zwebView = (WebView) findViewById(R.id.myWebView);
        zwebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest request) {
                webView.loadUrl(request.getUrl().toString());
                return true;
            }
        });

        zwebView.loadUrl(Video);

【问题讨论】:

    标签: java android iframe webview html5-video


    【解决方案1】:

    我只是复制粘贴你的代码,它的工作正常,视频正在加载到 web 视图中,所以如果你遇到问题,你可以分享你实际遇到的错误的日志详细信息。

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            WebView zwebView = new WebView(this);
    
            String Video;
            Video  = "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/eGPbD-f0b_A\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>";
            WebSettings webSettings = zwebView.getSettings();
            webSettings.setJavaScriptEnabled(true);
            zwebView.setInitialScale(1);
            zwebView.getSettings().setAllowFileAccess(true);
            zwebView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
            zwebView.setWebChromeClient(new WebChromeClient());
            zwebView.getSettings().setJavaScriptEnabled(true);
            zwebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
            zwebView.getSettings().setLoadWithOverviewMode(true);
            zwebView.getSettings().setUseWideViewPort(true);
    
            zwebView.getSettings().setAppCacheEnabled(true);
    
            zwebView.loadData(Video, "text/html", "utf-8");
    
            zwebView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest request) {
                    webView.loadUrl(request.getUrl().toString());
                    return true;
                }
            });
    
            zwebView.loadUrl(Video);
    
            setContentView(zwebView);
        }
    }
    

    这是我使用的代码,它正在工作。毕竟不会崩溃。

    【讨论】:

    • 当我在 android studio 中编译应用程序(使用 build apk 选项)时,我将它从我的电脑下载到我的手机并安装它。然后,当我运行该应用程序时,它会给我一条消息“我的应用程序不断停止”,并出现黑屏错误。
    • 为什么你不使用运行选项并使用 USB 调试直接将应用程序运行到你的手机上,你可以看到错误日志
    • 你是怎么做到的?
    • 检查这个答案我想你明白了 -> stackoverflow.com/a/46007135/9212581
    猜你喜欢
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 2022-10-01
    • 1970-01-01
    • 2020-12-14
    相关资源
    最近更新 更多