【发布时间】:2017-04-17 04:16:33
【问题描述】:
我正在尝试显示一个给定网址的视频。下面是包含WebView的部分布局:
<android.support.v4.widget.NestedScrollView
android:id="@+id/nested_scrollview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants"
android:orientation="vertical">
......
......
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:orientation="vertical">
......
<WebView
android:id="@+id/video"
android:layout_width="wrap_content"
android:layout_height="180dp"
android:visibility="gone"
android:layout_marginTop="24dp"/>
......
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
这是我显示视频的方式:
if(url != null && mVideo != null) {
WebSettings settings = mVideo.getSettings();
settings.setJavaScriptEnabled(true);
String videoFrame = "<html><head><style type=\'text/css\'>body{margin:auto;text-align:center;}</style></head>" +
"<body><iframe width=\"90%%\" height=\"100%%\" src=\"https:" + url + "\" frameborder=\"0\"></iframe></body></html>";
mVideo.loadData(videoFrame, "text/html", "utf-8");
}
虽然这是我遇到的错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
at com.android.webview.chromium.WebViewContentsClientAdapter.getDefaultVideoPoster(WebViewContentsClientAdapter.java:1181)
at org.chromium.android_webview.DefaultVideoPosterRequestHandler$1.run(DefaultVideoPosterRequestHandler.java:39)
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:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
难点在于,有时会发生这种情况,有时不会。所以很难确定问题所在。
除此之外,我还遇到了here 报告的问题,尽管它似乎不影响我显示视频的方式。
【问题讨论】:
-
我最近遇到了同样的问题。我真的很困惑是什么原因造成的,但清理项目似乎是一个临时修复。
标签: android nullpointerexception android-webview