Giter VIP home page Giter VIP logo

x5_webview_flutter's Introduction

x5_webview pub package

  • 一个基于腾讯x5引擎的webview的flutter插件,暂时只支持android使用
  • 提示:之前内嵌webview出现的一系列问题得到解决,请更新到最新版试用,谢谢支持。

x5内核介绍

  • x5内核,腾讯为改善移动端web体验的一种内核架构。加载更快,更省流量,视频播放优化,文件助手等等

快速集成

pub package

pub地址

  • pubspec.yaml文件添加
dependencies:
  x5_webview: ^x.x.x //最新版本见上方
  • 初始化x5。(安卓6.0+需在init之前请求动态权限,可以使用permission_handler,详情见example/lib/main.dart)
//请求权限
Map<Permission, PermissionStatus> statuses = await [
      Permission.phone,
      Permission.storage,
    ].request();
//判断权限
if (!(statuses[Permission.phone].isGranted &&
statuses[Permission.storage].isGranted)) {
    print("权限被拒绝");
    return;
}

var isOk = await X5Sdk.init();
print(isOk ? "X5内核成功加载" : "X5内核加载失败");
  • 如果你只是想要简单的展示web页面,可使用以下代码直接打开一个webActivity,性能更佳(推荐使用,视频播放也可以这个api)
X5Sdk.openWebActivity("https://www.baidu.com",title: "web页面");

使用内嵌webview

return Scaffold(
      appBar: AppBar(
        title: Text("X5WebView示例"),
      ),
      body: defaultTargetPlatform == TargetPlatform.android
          ? X5WebView(
              url: "http://debugtbs.qq.com",
              javaScriptEnabled: true,
              header: {"TestHeader": "测试"},
              userAgentString: "my_ua",
              //Url拦截,传null不会拦截会自动跳转
              onUrlLoading: (willLoadUrl) {
                _controller.loadUrl(willLoadUrl);
              }
              onWebViewCreated: (control) {
                _controller = control;
              },
              onPageFinished: () async {
                var url = await _controller.currentUrl();
                print(url);
                var body = await _controller
                    .evaluateJavascript('document.body.innerHTML');
                print(body);
              },
            )
          :
          //可替换为其他已实现ios webview,此处使用webview_flutter
          WebView(
              initialUrl: "https://www.baidu.com",
              javascriptMode: JavascriptMode.unrestricted,
              onWebViewCreated: (control) {
                _otherController = control;
                var body = _otherController
                    .evaluateJavascript('document.body.innerHTML');
                print(body);
              },
            ),
    );

内嵌webview js与flutter互调

flutter调用js

var body = await _controller.evaluateJavascript("document.body.innerHTML");

js调用flutter

  • flutter代码
     X5WebView(
        ...
        javascriptChannels: JavascriptChannels(
            ["X5Web", "Toast"], (name, data) {
          switch (name) {
            ...
          }
        }))
  • js代码
X5Web.postMessage("XXX")
Toast.postMessage("YYY")

打开本地html文件(使用assets文件,内嵌webview同理)

var fileS = await rootBundle.loadString("assets/index.html");
var url = Uri.dataFromString(fileS,
                          mimeType: 'text/html',
                          encoding: Encoding.getByName('utf-8'))
                      .toString();
X5Sdk.openWebActivity(url, title: "本地html示例");

注意事项

  • minSdkVersion 19以上

  • 该插件暂时只支持Android手机,IOS会使用无效。ios可使用webview_flutter或其他已实现IOS WKWebView插件

  • 一般手机安装了QQ,微信,QQ浏览器等软件,手机里自动会有X5内核,如果没有X5内核会在wifi下自动下载,X5内核没有加载成功会自动使用系统内核官网说明。详细配置可用手机打开以下链接查看X5内核的详情

    http://debugtbs.qq.com
    
  • 请使用真机测试,模拟器可能不能正常显示

  • 如果测试正常加载,打包后不能加载,可以尝试使用android studio打开android目录直接打包apk。或者使用以下命令行打包

flutter build apk --target-platform android-arm --no-shrink

并增加混淆配置(详见example)

-dontwarn dalvik.**
-dontwarn com.tencent.smtt.**

-keep class com.tencent.smtt.** {
    *;
}

-keep class com.tencent.tbs.** {
    *;
}
  • android9.0版本webview联不了网在manifest添加

    <application
        ...
        android:usesCleartextTraffic="true">
    </application>
    
  • android7.0读写文件需要在manifest的application内添加(xml文件已在插件内,无需自己创建)

          <!--        不使用androidx 请用android:name="android.support.v4.content.FileProvider"-->    
        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/x5webview_file_paths" />
        </provider>  
    
  • X5Sdk.openWebActivity actionbar颜色自定义

    //1.
    implementation "androidx.appcompat:appcompat:1.1.0"
    
    //2.
      <style name="AppTheme" parent="ThemeOverlay.AppCompat.Dark">
          <!-- Customize your theme here. -->
          <item name="colorPrimary">#2196F3</item>
          <item name="colorPrimaryDark">#1976D2</item>
          <item name="colorAccent">#FF4081</item>
          <item name="windowNoTitle">false</item>
          <item name="windowActionBar">true</item>
      </style>
    
    //3.
    <application
          ...
          android:theme="@style/AppTheme">
    
    
  • 有比较急的问题可以加我QQ:793710663

示例程序下载

apk下载

二维码

x5_webview_flutter's People

Contributors

succi-c avatar venuscao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

x5_webview_flutter's Issues

视频解析不出,qq浏览器可以

如题,附上链接,

https://660e.com/?url=http://www.iqiyi.com/v_19rycrhak4.html

qq浏览器用的x5和你这个x5是同一个x5吗?qq浏览器上有一个倍速功能,咱这插件可以调出来吗

能否提高kotlin版本

错误日志

The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.10 and higher.
The following dependencies do not satisfy the required version:
project ':x5_webview' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.71

工程内配置

buildscript {
    ext.kotlin_version = '1.3.61'
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

目前官方的部分Flutter/Plugins插件已经要求 3.6.1 了。

android闪退

在执行这个方法的时候 X5Sdk.openWebActivity(url, title: title); 闪退了~
报错如下

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xingfei.ui/com.cjx.x5_webview.X5WebViewActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
E/AndroidRuntime(25733):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2856)
E/AndroidRuntime(25733):        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2931)
E/AndroidRuntime(25733):        at android.app.ActivityThread.-wrap11(Unknown Source:0)
E/AndroidRuntime(25733):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1620)
E/AndroidRuntime(25733):        at android.os.Handler.dispatchMessage(Handler.java:105)
E/AndroidRuntime(25733):        at android.os.Looper.loop(Looper.java:173)
E/AndroidRuntime(25733):        at android.app.ActivityThread.main(ActivityThread.java:6698)
E/AndroidRuntime(25733):        at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(25733):        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
E/AndroidRuntime(25733):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
E/AndroidRuntime(25733): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
E/AndroidRuntime(25733):        at com.cjx.x5_webview.X5WebViewActivity.initView(X5WebViewActivity.kt:24)
E/AndroidRuntime(25733):        at com.cjx.x5_webview.X5WebViewActivity.onCreate(X5WebViewActivity.kt:20)
E/AndroidRuntime(25733):        at android.app.Activity.performCreate(Activity.java:7040)
E/AndroidRuntime(25733):        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
E/AndroidRuntime(25733):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2809)

求指导

与1.12版本创建的工程不兼容

--------- beginning of crash
 03-25 11:04:15.623 13243 13243 E AndroidRuntime: FATAL EXCEPTION: main
 03-25 11:04:15.623 13243 13243 E AndroidRuntime: Process: com.xxxx.xxxxx, PID: 13243
 03-25 11:04:15.623 13243 13243 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxx.xxxxx/com.example.    uhome.MainActivity}: java.lang.UnsupportedOperationException: The new embedding does not support the old FlutterView.
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2946)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:   108)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:106)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:201)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6806)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime: Caused by: java.lang.UnsupportedOperationException: The new embedding does not support the old       FlutterView.
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at io.flutter.embedding.engine.plugins.shim.ShimRegistrar.view(ShimRegistrar.java:82)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at com.cjx.x5_webview.X5WebViewPlugin$Companion.registerWith(X5WebViewPlugin.kt:27)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at com.cjx.x5_webview.X5WebViewPlugin.registerWith(Unknown Source:2)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:39)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at com.example.uhome.MainActivity.configureFlutterEngine(MainActivity.kt:10)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.                               onAttach(FlutterActivityAndFragmentDelegate.java:185)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at io.flutter.embedding.android.FlutterActivity.onCreate(FlutterActivity.java:418)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.Activity.performCreate(Activity.java:7224)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.Activity.performCreate(Activity.java:7213)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2926)
 03-25 11:04:15.623 13243 13243 E AndroidRuntime:    ... 11 more

关键错误信息The new embedding does not support the old FlutterView

相关讨论

flutter/flutter#40423

内嵌的时候出现这个问题

内嵌的时候出现这个问题
The getter 'names' was called on null.
Receiver: null
Tried calling: names
The relevant error-causing widget was:
X5WebView file:/lib/pages/WebPage.dart:85:19
When the exception was thrown, this was the stack:
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:54:5)
#1 _CreationParams.fromWidget (package:x5_webview/x5_webview.dart:246:55)
#2 _X5WebViewState.build. (package:x5_webview/x5_webview.dart:82:45)
#3 _PlatformViewLinkState._initialize (package:flutter/src/widgets/platform_view.dart:878:47)
#4 _PlatformViewLinkState.initState (package:flutter/src/widgets/platform_view.dart:856:5)

调用openVideo播放视频,暂停再播放VideoActivity会闪退,内存泄漏

WindowManager: android.view.WindowLeaked: Activity com.tencent.smtt.sdk.VideoActivity has leaked window com.tencent.mtt.video.internal.player.ui.an{266704f V.E...... ......ID 0,0-864,509} that was originally added here
at android.view.ViewRootImpl.(ViewRootImpl.java:614)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:365)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:100)
at com.tencent.mtt.video.internal.player.d.v(H5VideoViewMounter.java:273)
at com.tencent.mtt.video.internal.player.d.b(H5VideoViewMounter.java:193)
at com.tencent.mtt.video.internal.player.d.a(H5VideoViewMounter.java:149)
at com.tencent.mtt.video.internal.player.d$1.run(H5VideoViewMounter.java:124)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:108)
D/ViewRootImpl@6350e09[VideoActivity]: dispatchDetachedFromWindow
D/ViewRootImpl@6350e09[VideoActivity]: dispatchDetachedFromWindow
D/InputEventReceiver: channel 'b239fd org.unicellular.otaku/com.tencent.smtt.sdk.VideoActivity (client)' ~ Disposing input event receiver.
channel 'b239fd org.unicellular.otaku/com.tencent.smtt.sdk.VideoActivity (client)' ~NativeInputEventReceiver.
I/System.out: WonderPlayer:SmttCacheDownloader calls detatch()

gradle编译错误

e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewActivity.kt: (35, 46): Unresolved reference: MenuItem
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewActivity.kt: (38, 17): Unresolved reference: finish
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewActivity.kt: (42, 22): Unresolved reference: onOptionsItemSelected
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewActivity.kt: (46, 5): 'onDestroy' overrides nothing
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewActivity.kt: (47, 15): Unresolved reference: onDestroy
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewActivity.kt: (51, 5): 'onPause' overrides nothing
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewActivity.kt: (52, 15): Unresolved reference: onPause
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewActivity.kt: (56, 5): 'onResume' overrides nothing
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewActivity.kt: (57, 15): Unresolved reference: onResume
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewPlugin.kt: (9, 36): Unresolved reference: Context
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewPlugin.kt: (9, 57): Unresolved reference: Activity
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewPlugin.kt: (24, 9): Unresolved reference: QbSdk
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewPlugin.kt: (24, 70): Unresolved reference: QbSdk
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewPlugin.kt: (25, 11): 'onCoreInitFinished' overrides nothing
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewPlugin.kt: (29, 11): 'onViewInitFinished' overrides nothing
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewPlugin.kt: (38, 23): Unresolved reference: TbsVideo
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewPlugin.kt: (43, 20): Unresolved reference: Bundle
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewPlugin.kt: (45, 9): Unresolved reference: TbsVideo
e: /Users/xhli/.pub-cache/hosted/pub.flutter-io.cn/x5_webview-0.1.1/android/src/main/kotlin/com/cjx/x5_webview/X5WebViewPlugin.kt: (50, 20): Unresolved reference: Intent

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':x5_webview:compileDebugKotlin'.

Compilation error. See log for more details

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 8s
Finished with error: Gradle task assembleDebug failed with exit code 1

麻烦看一下这个issue,多谢🙏

x5_webview_flutter能否设置循环播放当前视频

x5_webview_flutter效果很不错,不知能否设置自动开始播放、循环播放当前视频,如果能够增加这些简单功能,就更强大了,先行谢过!

HTML 5 视频是支持自动开始播放、循环播放功能的:
https://www.w3school.com.cn/html5/html_5_video.asp

属性 描述
autoplay autoplay 如果出现该属性,则视频在就绪后马上播放。
controls controls 如果出现该属性,则向用户显示控件,比如播放按钮。
height pixels 设置视频播放器的高度。
loop loop 如果出现该属性,则当媒介文件完成播放后再次开始播放。
preload preload 如果出现该属性,则视频在页面加载时进行加载,并预备播放。如果使用 "autoplay",则忽略该属性。
src url 要播放的视频的 URL。
width pixels 设置视频播放器的宽度。

进入web页面后,返回时报错

使用X5Sdk.openWebActivity进入web页面,按下返回键时,会有报错

W/System.err(18885): java.lang.NullPointerException: Attempt to invoke interface method 'com.tencent.smtt.export.external.extension.interfaces.IX5WebViewExtension com.tencent.smtt.export.external.interfaces.IX5WebViewBase.getX5WebViewExtension()' on a null object reference
W/System.err(18885):    at com.tencent.smtt.sdk.WebView.tbsWebviewDestroy(Unknown Source:91)
W/System.err(18885):    at com.tencent.smtt.sdk.WebView.destroy(Unknown Source:43)
W/System.err(18885):    at com.cjx.x5_webview.X5WebViewActivity.onDestroy(X5WebViewActivity.kt:60)
W/System.err(18885):    at android.app.Activity.performDestroy(Activity.java:7242)
W/System.err(18885):    at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1249)
W/System.err(18885):    at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4492)
W/System.err(18885):    at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4523)
W/System.err(18885):    at android.app.ActivityThread.-wrap5(Unknown Source:0)
W/System.err(18885):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1683)
W/System.err(18885):    at android.os.Handler.dispatchMessage(Handler.java:105)
W/System.err(18885):    at android.os.Looper.loop(Looper.java:173)
W/System.err(18885):    at android.app.ActivityThread.main(ActivityThread.java:6698)
W/System.err(18885):    at java.lang.reflect.Method.invoke(Native Method)
W/System.err(18885):    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
W/System.err(18885):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
W/System.err(18885): java.lang.SecurityException: getDeviceId: Neither user 10647 nor current process has android.permission.READ_PHONE_STATE.
W/System.err(18885):    at android.os.Parcel.readException(Parcel.java:1951)
W/System.err(18885):    at android.os.Parcel.readException(Parcel.java:1897)
W/System.err(18885):    at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:4823)
W/System.err(18885):    at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:994)
W/System.err(18885):    at com.tencent.smtt.utils.b.c(Unknown Source:21)
W/System.err(18885):    at com.tencent.smtt.sdk.a.b.a(Unknown Source:209)
W/System.err(18885):    at com.tencent.smtt.sdk.WebView.tbsWebviewDestroy(Unknown Source:116)
W/System.err(18885):    at com.tencent.smtt.sdk.WebView.destroy(Unknown Source:43)
W/System.err(18885):    at com.cjx.x5_webview.X5WebViewActivity.onDestroy(X5WebViewActivity.kt:60)
W/System.err(18885):    at android.app.Activity.performDestroy(Activity.java:7242)
W/System.err(18885):    at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1249)
W/System.err(18885):    at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4492)
W/System.err(18885):    at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4523)
W/System.err(18885):    at android.app.ActivityThread.-wrap5(Unknown Source:0)
W/System.err(18885):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1683)
W/System.err(18885):    at android.os.Handler.dispatchMessage(Handler.java:105)
W/System.err(18885):    at android.os.Looper.loop(Looper.java:173)
W/System.err(18885):    at android.app.ActivityThread.main(ActivityThread.java:6698)
W/System.err(18885):    at java.lang.reflect.Method.invoke(Native Method)
W/System.err(18885):    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
W/System.err(18885):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
W/System.err(18885): java.lang.SecurityException: getSubscriberId: Neither user 10647 nor current process has android.permission.READ_PHONE_STATE.
W/System.err(18885):    at android.os.Parcel.readException(Parcel.java:1951)
W/System.err(18885):    at android.os.Parcel.readException(Parcel.java:1897)
W/System.err(18885):    at com.android.internal.telephony.IPhoneSubInfo$Stub$Proxy.getSubscriberIdForSubscriber(IPhoneSubInfo.java:535)
W/System.err(18885):    at android.telephony.TelephonyManager.getSubscriberId(TelephonyManager.java:2348)
W/System.err(18885):    at android.telephony.TelephonyManager.getSubscriberId(TelephonyManager.java:2330)
W/System.err(18885):    at com.tencent.smtt.utils.b.d(Unknown Source:21)
W/System.err(18885):    at com.tencent.smtt.sdk.a.b.a(Unknown Source:213)
W/System.err(18885):    at com.tencent.smtt.sdk.WebView.tbsWebviewDestroy(Unknown Source:116)
W/System.err(18885):    at com.tencent.smtt.sdk.WebView.destroy(Unknown Source:43)
W/System.err(18885):    at com.cjx.x5_webview.X5WebViewActivity.onDestroy(X5WebViewActivity.kt:60)
W/System.err(18885):    at android.app.Activity.performDestroy(Activity.java:7242)
W/System.err(18885):    at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1249)
W/System.err(18885):    at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4492)
W/System.err(18885):    at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4523)
W/System.err(18885):    at android.app.ActivityThread.-wrap5(Unknown Source:0)
W/System.err(18885):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1683)
W/System.err(18885):    at android.os.Handler.dispatchMessage(Handler.java:105)
W/System.err(18885):    at android.os.Looper.loop(Looper.java:173)
W/System.err(18885):    at android.app.ActivityThread.main(ActivityThread.java:6698)
W/System.err(18885):    at java.lang.reflect.Method.invoke(Native Method)
W/System.err(18885):    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
W/System.err(18885):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
W/cr_AwContents(18885): WebView.destroy() called while WebView is still attached to window.
W/cr_ChildProcessConn(18885): onServiceDisconnected (crash or killed by oom): pid=22683
W/System.err(18885): javax.crypto.IllegalBlockSizeException: last block incomplete in decryption
W/System.err(18885):    at com.android.org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(BaseBlockCipher.java:1143)
W/System.err(18885):    at javax.crypto.Cipher.doFinal(Cipher.java:1736)
W/System.err(18885):    at com.tencent.smtt.utils.o.c(Unknown Source:31)
W/System.err(18885):    at com.tencent.smtt.sdk.a.b.b(Unknown Source:83)
W/System.err(18885):    at com.tencent.smtt.sdk.a.b.a(Unknown Source:0)
W/System.err(18885):    at com.tencent.smtt.sdk.a.c.run(Unknown Source:355)
W/System.err(18885): java.lang.NullPointerException: Attempt to get length of null array
W/System.err(18885):    at java.lang.StringFactory.newStringFromBytes(StringFactory.java:46)
W/System.err(18885):    at com.tencent.smtt.sdk.a.b.b(Unknown Source:87)
W/System.err(18885):    at com.tencent.smtt.sdk.a.b.a(Unknown Source:0)
W/System.err(18885):    at com.tencent.smtt.sdk.a.c.run(Unknown Source:355)

不过不影响使用

x5内核初始化失败

Android 原生项目初始化成功, 你的demo,运行后x5初始化失败。 大佬,你那里初始化是成功的吗?

内嵌浏览爱奇艺网站视频时候点击视频全屏崩溃

附上报错日志
I/PlayerBase(11541): isRestricted: falseLeftvolume: 1.0 Rightvolume: 1.0mPanMultiplierL: 1.0mPanMultiplierR: 1.0
D/HiTouch_PressGestureDetector(11541): HiTouch on notch display, width corret:90
I/HiTouch_HiTouchSensor(11541): ORIENTATION_LANDSCAPE
D/HwAppInnerBoostImpl(11541): asyncReportData com.bst.bst_life_app,1,1,5,0 interval=2341
W/libEGL (11541): EGLNativeWindowType 0xd0bdc008 disconnect failed
D/mali_winsys(11541): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
W/libEGL (11541): EGLNativeWindowType 0xd0bdc808 disconnect failed
D/mali_winsys(11541): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
E/SurfaceView(11541): Exception configuring surface
E/SurfaceView(11541): java.lang.NullPointerException: Attempt to read from field 'android.view.Surface android.view.ViewRootImpl.mSurface' on a null object reference
E/SurfaceView(11541): at android.view.SurfaceView.applySurfaceTransforms(SurfaceView.java:900)
E/SurfaceView(11541): at android.view.SurfaceView.setParentSpaceRectangle(SurfaceView.java:918)
E/SurfaceView(11541): at android.view.SurfaceView.surfacePositionLost_uiRtSync(SurfaceView.java:1026)
W/libEGL (11541): EGLNativeWindowType 0xd0bdc008 disconnect failed
D/mali_winsys(11541): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/HwAppInnerBoostImpl(11541): asyncReportData com.bst.bst_life_app,1,2,1,3 interval=2379
I/ViewRootImpl(11541): jank_removeInvalidNode all the node in jank list is out of time
W/InputMethodManager(11541): startInputReason = 4
W/System.err(11541): java.lang.AbstractMethodError: abstract method "boolean com.tencent.smtt.export.external.extension.interfaces.IX5WebViewExtension.isX5CoreSandboxMode()"
W/System.err(11541): at com.tencent.smtt.sdk.WebView.a(Unknown Source:95)
W/System.err(11541): at com.tencent.smtt.sdk.WebView.onDetachedFromWindow(Unknown Source:27)
W/System.err(11541): at android.view.View.dispatchDetachedFromWindow(View.java:18628)
W/System.err(11541): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3831)
W/System.err(11541): at android.view.ViewGroup.removeAllViewsInLayout(ViewGroup.java:5638)
W/System.err(11541): at android.view.ViewGroup.removeAllViews(ViewGroup.java:5584)
W/System.err(11541): at io.flutter.plugin.platform.SingleViewPresentation.detachState(SingleViewPresentation.java:155)
W/System.err(11541): at io.flutter.plugin.platform.VirtualDisplayController.resize(VirtualDisplayController.java:83)
W/System.err(11541): at io.flutter.plugin.platform.PlatformViewsController.resizePlatformView(PlatformViewsController.java:264)
W/System.err(11541): at io.flutter.plugin.platform.PlatformViewsController.onMethodCall(PlatformViewsController.java:148)
W/System.err(11541): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:201)
W/System.err(11541): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:88)
W/System.err(11541): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:219)
W/System.err(11541): at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err(11541): at android.os.MessageQueue.next(MessageQueue.java:386)
W/System.err(11541): at android.os.Looper.loop(Looper.java:169)
W/System.err(11541): at android.app.ActivityThread.main(ActivityThread.java:7470)
W/System.err(11541): at java.lang.reflect.Method.invoke(Native Method)
W/System.err(11541): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
W/System.err(11541): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
W/System.err(11541): java.lang.SecurityException: getDeviceId
W/System.err(11541): at android.os.Parcel.createException(Parcel.java:1953)
W/System.err(11541): at android.os.Parcel.readException(Parcel.java:1921)
W/System.err(11541): at android.os.Parcel.readException(Parcel.java:1871)
W/System.err(11541): at com.android.internal.telephony.IHwTelephony$Stub$Proxy.getUniqueDeviceId(IHwTelephony.java:2028)
W/System.err(11541): at android.telephony.HwTelephonyManagerInner.getUniqueDeviceId(HwTelephonyManagerInner.java:1096)
W/System.err(11541): at android.telephony.HwInnerTelephonyManagerImpl.getUniqueDeviceId(HwInnerTelephonyManagerImpl.java:351)
W/System.err(11541): at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:1264)
W/System.err(11541): at com.tencent.smtt.utils.b.c(Unknown Source:21)
W/System.err(11541): at com.tencent.smtt.sdk.a.b.a(Unknown Source:209)
W/System.err(11541): at com.tencent.smtt.sdk.WebView.a(Unknown Source:116)
W/System.err(11541): at com.tencent.smtt.sdk.WebView.onDetachedFromWindow(Unknown Source:27)
W/System.err(11541): at android.view.View.dispatchDetachedFromWindow(View.java:18628)
W/System.err(11541): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3831)
W/System.err(11541): at android.view.ViewGroup.removeAllViewsInLayout(ViewGroup.java:5638)
W/System.err(11541): at android.view.ViewGroup.removeAllViews(ViewGroup.java:5584)
W/System.err(11541): at io.flutter.plugin.platform.SingleViewPresentation.detachState(SingleViewPresentation.java:155)
W/System.err(11541): at io.flutter.plugin.platform.VirtualDisplayController.resize(VirtualDisplayController.java:83)
W/System.err(11541): at io.flutter.plugin.platform.PlatformViewsController.resizePlatformView(PlatformViewsController.java:264)
W/System.err(11541): at io.flutter.plugin.platform.PlatformViewsController.onMethodCall(PlatformViewsController.java:148)
W/System.err(11541): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:201)
W/System.err(11541): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:88)
W/System.err(11541): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:219)
W/System.err(11541): at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err(11541): at android.os.MessageQueue.next(MessageQueue.java:386)
W/System.err(11541): at android.os.Looper.loop(Looper.java:169)
W/System.err(11541): at android.app.ActivityThread.main(ActivityThread.java:7470)
W/System.err(11541): at java.lang.reflect.Method.invoke(Native Method)
W/System.err(11541): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
W/System.err(11541): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
W/System.err(11541): java.lang.SecurityException: getSubscriberId
W/System.err(11541): at android.os.Parcel.createException(Parcel.java:1953)
W/System.err(11541): at android.os.Parcel.readException(Parcel.java:1921)
W/System.err(11541): at android.os.Parcel.readException(Parcel.java:1871)
W/System.err(11541): at com.android.internal.telephony.IPhoneSubInfo$Stub$Proxy.getSubscriberIdForSubscriber(IPhoneSubInfo.java:603)
W/System.err(11541): at android.telephony.TelephonyManager.getSubscriberId(TelephonyManager.java:2983)
W/System.err(11541): at android.telephony.TelephonyManager.getSubscriberId(TelephonyManager.java:2966)
W/System.err(11541): at com.tencent.smtt.utils.b.d(Unknown Source:21)
W/System.err(11541): at com.tencent.smtt.sdk.a.b.a(Unknown Source:213)
W/System.err(11541): at com.tencent.smtt.sdk.WebView.a(Unknown Source:116)
W/System.err(11541): at com.tencent.smtt.sdk.WebView.onDetachedFromWindow(Unknown Source:27)
W/System.err(11541): at android.view.View.dispatchDetachedFromWindow(View.java:18628)
W/System.err(11541): at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3831)
W/System.err(11541): at android.view.ViewGroup.removeAllViewsInLayout(ViewGroup.java:5638)
W/System.err(11541): at android.view.ViewGroup.removeAllViews(ViewGroup.java:5584)
W/System.err(11541): at io.flutter.plugin.platform.SingleViewPresentation.detachState(SingleViewPresentation.java:155)
W/System.err(11541): at io.flutter.plugin.platform.VirtualDisplayController.resize(VirtualDisplayController.java:83)
W/System.err(11541): at io.flutter.plugin.platform.PlatformViewsController.resizePlatformView(PlatformViewsController.java:264)
W/System.err(11541): at io.flutter.plugin.platform.PlatformViewsController.onMethodCall(PlatformViewsController.java:148)
W/System.err(11541): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:201)
W/System.err(11541): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:88)
W/System.err(11541): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:219)
W/System.err(11541): at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err(11541): at android.os.MessageQueue.next(MessageQueue.java:386)
W/System.err(11541): at android.os.Looper.loop(Looper.java:169)
W/System.err(11541): at android.app.ActivityThread.main(ActivityThread.java:7470)
W/System.err(11541): at java.lang.reflect.Method.invoke(Native Method)
W/System.err(11541): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
W/System.err(11541): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
D/HiTouch_PressGestureDetector(11541): HiTouch on notch display, width corret:72
D/OpenGLRenderer(11541): HWUI Binary is enabled
D/OpenGLRenderer(11541): disableOutlineDraw is true
W/System.err(11541): javax.crypto.IllegalBlockSizeException: last block incomplete in decryption
W/System.err(11541): at com.android.org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(BaseBlockCipher.java:1174)W/System.err(11541): at javax.crypto.Cipher.doFinal(Cipher.java:2055)
W/System.err(11541): at com.tencent.smtt.utils.o.c(Unknown Source:31)
W/System.err(11541): at com.tencent.smtt.sdk.a.b.b(Unknown Source:83)
W/System.err(11541): at com.tencent.smtt.sdk.a.b.a(Unknown Source:0)
W/System.err(11541): at com.tencent.smtt.sdk.a.c.run(Unknown Source:355)
W/System.err(11541): java.lang.NullPointerException: Attempt to get length of null array
W/System.err(11541): at java.lang.StringFactory.newStringFromBytes(StringFactory.java:46)
W/System.err(11541): at com.tencent.smtt.sdk.a.b.b(Unknown Source:87)
W/System.err(11541): at com.tencent.smtt.sdk.a.b.a(Unknown Source:0)
W/System.err(11541): at com.tencent.smtt.sdk.a.c.run(Unknown Source:355)
I/Choreographer(11541): Skipped 33 frames! The application may be doing too much work on its main thread.
D/HiTouch_PressGestureDetector(11541): HiTouch on notch display, width corret:90
I/HiTouch_HiTouchSensor(11541): ORIENTATION_LANDSCAPE
D/HwAppInnerBoostImpl(11541): asyncReportData com.bst.bst_life_app,1,1,6,0 interval=2998
W/libEGL (11541): EGLNativeWindowType 0xb3fd3008 disconnect failed
I/HiTouch_HiTouchSensor(11541): HiTouch restricted: Sub windows restricted.
E/Surface (11541): queueBuffer: error queuing buffer to SurfaceTexture, -19
E/ACodec (11541): queueBuffer failed in onOutputBufferDrained: -19
E/ACodec (11541): signalError(omxError 0x80001001, internalError -19)
E/MediaCodec(11541): Codec reported err 0xffffffed, actionCode 0, while in state 6
D/SurfaceUtils(11541): disconnecting from surface 0xb3be6808, reason disconnectFromSurface
D/mali_winsys(11541): EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
D/HiTouch_PressGestureDetector(11541): HiTouch on notch display, height corret:99
D/OpenGLRenderer(11541): HWUI Binary is enabled
D/OpenGLRenderer(11541): disableOutlineDraw is true
D/AndroidRuntime(11541): Shutting down VM
E/AndroidRuntime(11541): FATAL EXCEPTION: main
E/AndroidRuntime(11541): Process: com.bst.bst_life_app, PID: 11541
E/AndroidRuntime(11541): java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.DisplayAdjustments android.view.Display.getDisplayAdjustments()' on a null object reference
E/AndroidRuntime(11541): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1887)
E/AndroidRuntime(11541): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1624)
E/AndroidRuntime(11541): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7926)
E/AndroidRuntime(11541): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1079)
E/AndroidRuntime(11541): at android.view.Choreographer.doCallbacks(Choreographer.java:885)
E/AndroidRuntime(11541): at android.view.Choreographer.doFrame(Choreographer.java:809)
E/AndroidRuntime(11541): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1065)
E/AndroidRuntime(11541): at android.os.Handler.handleCallback(Handler.java:891)
E/AndroidRuntime(11541): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(11541): at android.os.Looper.loop(Looper.java:207)
E/AndroidRuntime(11541): at android.app.ActivityThread.main(ActivityThread.java:7470)
E/AndroidRuntime(11541): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(11541): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
E/AndroidRuntime(11541): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
E/CrashHandler(11541): In thread: Thread[main,5,main]
E/CrashHandler(11541): UncaughtException detected: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.DisplayAdjustments android.view.Display.getDisplayAdjustments()' on a null object reference
E/CrashHandler(11541): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1887)
E/CrashHandler(11541): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1624)
E/CrashHandler(11541): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7926)
E/CrashHandler(11541): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1079)
E/CrashHandler(11541): at android.view.Choreographer.doCallbacks(Choreographer.java:885)
E/CrashHandler(11541): at android.view.Choreographer.doFrame(Choreographer.java:809)
E/CrashHandler(11541): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1065)
E/CrashHandler(11541): at android.os.Handler.handleCallback(Handler.java:891)
E/CrashHandler(11541): at android.os.Handler.dispatchMessage(Handler.java:102)
E/CrashHandler(11541): at android.os.Looper.loop(Looper.java:207)
E/CrashHandler(11541): at android.app.ActivityThread.main(ActivityThread.java:7470)
E/CrashHandler(11541): at java.lang.reflect.Method.invoke(Native Method)
E/CrashHandler(11541): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
E/CrashHandler(11541): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
I/crash_recorder(11541): recordTbsCrash:
I/crash_recorder(11541): {java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.DisplayAdjustments android.view.Display.getDisplayAdjustments()' on a null object reference
I/crash_recorder(11541): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1887)
I/crash_recorder(11541): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1624)
I/crash_recorder(11541): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7926)
I/crash_recorder(11541): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1079)
I/crash_recorder(11541): at android.view.Choreographer.doCallbacks(Choreographer.java:885)
I/crash_recorder(11541): at android.view.Choreographer.doFrame(Choreographer.java:809)
I/crash_recorder(11541): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1065)
I/crash_recorder(11541): at android.os.Handler.handleCallback(Handler.java:891)
I/crash_recorder(11541): at android.os.Handler.dispatchMessage(Handler.java:102)
I/crash_recorder(11541): at android.os.Looper.loop(Looper.java:207)
I/crash_recorder(11541): at android.app.ActivityThread.main(ActivityThread.java:7470)
I/crash_recorder(11541): at java.lang.reflect.Method.invoke(Native Method)
I/crash_recorder(11541): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller
I/crash_recorder(11541): isInTbsContext, webviewType: unknown, isLoading: 0
I/Process (11541): Sending signal. PID: 11541 SIG: 9

File and Photo input doesn't work

I added this to manifest:

 <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="${applicationId}"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/x5webview_file_paths" />
    </provider>  
    

And this to main() function of app: await Permission.camera.request();

But inputing still not working.

android 6.0以上权限BUG

环境

android版本:10
权限情况:已授权文件读写

问题:初始化X5出错

我对X5内核进行初始化加载:
X5Sdk.init().then((isOK) { print(isOK ? "X5内核成功加载" : "X5内核加载失败"); });
在这里报错,一直无法初始化成功:

W/FileUtils( 7567): Failed to chmod(/data/user/0/com.tencent.mm/app_tbs): android.system.ErrnoException: chmod failed: EACCES (Permission denied)
W/FileUtils( 7567): Failed to chmod(/data/user/0/com.tencent.mobileqq/app_tbs): android.system.ErrnoException: chmod failed: EACCES (Permission denied)
W/FileUtils( 7567): Failed to chmod(/data/user/0/com.tencent.mm/app_tbs): android.system.ErrnoException: chmod failed: EACCES (Permission denied)
W/FileUtils( 7567): Failed to chmod(/data/user/0/com.tencent.mobileqq/app_tbs): android.system.ErrnoException: chmod failed: EACCES (Permission denied)

说无权,但我已经授权了文件读写权限,并进行了二次权限校验。

android 6.0之上的系统除了添加权限还要在你报错的代码前面添加请求权限的代码

我在stackoverflow中得知,在 android 6以上系统虽然已经授权了,但在使用权限时还得需要再次请求权限,所以出现了上面的错误。

解决方法,上面stackoverflow中已经给出了解决方案,能否请G主确认一下是否是这个问题,并修复更新,感谢!

补充一

发现本包使用的SDK(v4.3.0.1148_43697)只支持32位,但官方的最新版X5SDK(v4.3.0.3_43903)已经支持64位。老大抽时间更新一下吧。

64位手机无法加载x5(libmttwebview.so is 32-bit instead of 64-bit)
新版本SDK已支持64位,请更新至官网最新43903版本SDK

link

补充二

目前使用X5内核的核心用途是用来播放视频,但是经测试使用X5Sdk.openVideo打开的视频,只要暂停再播放就闪退(内存泄露),老大是否有计划修复呢?

如果用openWebActivity来播放视频的话就推动意义了,不知如果升级官网最新43903版本SDK是否能解决这个BUG呢?

访问某些页面时会白屏

使用X5Sdk.openWebActivity打开如下两个链接,页面全白。。。

https://wechat.xjiayou.com/d/MxTjci1aNylo5uodHRwOi8vaW5vdXQudHVodS5jbi9jbGljay5hc3B4P2NfaWQ9NTU1NCZrdz0lRTYlODglOTElRTUlQUUlQjYlRTUlOEElQTAlRTYlQjIlQjlfMjk5JUU1JUE1JTk3JUU5JUE0JTkwMV4xNTI1NjA0
https://wechat.xjiayou.com/d/MxTjAiyaMylo5uodHRwczovL2wuenV6dWNoZS5jb20vQ1lWN0Y5XjE1MjU2MDQO0O0O

app启动时闪退

我在run 时候 控制台输出如下
Launching lib\main.dart on BND AL10 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
Application finished.

app进入程序就闪退了

内核加载失败

你好,按照example里的方法加载内核失败,代码如下

  initTencentX5() async {
    //请求权限
    Map<Permission, PermissionStatus> statuses = await [
      Permission.phone,
      Permission.storage,
    ].request();

    //判断权限
    if (!(statuses[Permission.phone]!.isGranted && statuses[Permission.storage]!.isGranted)) {
      print("权限被拒绝");
    } else {
      await X5Sdk.setDownloadWithoutWifi(true);

      // 内核下载安装监听
      await X5Sdk.setX5SdkListener(
          X5SdkListener(
              onInstallFinish: () {
        print("X5内核安装完成");

      }, onDownloadFinish: () {
        print("X5内核下载完成");
      }, onDownloadProgress: (int progress) {
        print("X5内核下载中---$progress%");
      }));
      print("----开始加载内核----");
      var isOk = await X5Sdk.init();
      print(isOk ? "X5内核成功加载" : "X5内核加载失败");

      var x5CrashInfo = await X5Sdk.getCrashInfo();
      print("crash info: " + x5CrashInfo);
    }
  }

运行结果如下,并未看到内核下载进度,内核版本为 0
Snipaste_2023-07-05_18-10-26

运行环境:小米手机- Android8

JavascriptChannel 接受不到js页面postmessage的回调

X5WebView( url: "file:///android_asset/flutter_assets/webview/index.html", javaScriptEnabled: true, javascriptChannels: JavascriptChannels(["test"], (name, data) { print("333333333333333333"); AppSettings.openWIFISettings(); switch (name) { default: print("5"); break; } }),
页面正常打开,js的postmessage能正常执行,只是flutter这边接收不到回调,我换了个插件是可以正确执行的,不知道哪里出了问题

网页中包含一个视频,点击视频的全屏按钮时无响应,然后整个页面卡死,页面无响应

控制台输出以下内容:

D/SurfaceUtils(31770): connecting to surface 0xb400007b5462f010, reason connectToSurface
I/MediaCodec(31770): [OMX.qcom.video.decoder.avc] setting surface generation to 32532494
D/SurfaceUtils(31770): disconnecting from surface 0xb400007b5462f010, reason connectToSurface(reconnect)
D/SurfaceUtils(31770): connecting to surface 0xb400007b5462f010, reason connectToSurface(reconnect)
D/SurfaceUtils(31770): set up nativeWindow 0xb400007b5462f010 for 640x368, color 0x7fa30c06, rotation 0, usage 0x20402900
D/SurfaceUtils(31770): disconnecting from surface 0xb400007b81f75010, reason disconnectFromSurface
E/Surface (31770): freeAllBuffers: 45 buffers were freed while being dequeued!
D/SurfaceUtils(31770): disconnecting from surface 0xb400007b5462f010, reason disconnectFromSurface

测试环境:Redmi K40,Android12

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.