文章目录

  • crosswalk使用提示报错 mismatch of cpu architecture
  • 正常使用crosswalk这一类的第三方的流程:
  • 解决:
    • 解决问题参考资料:
    • 学习参考资料:
    • GitHub demo:

最近要使用第三方webview来替换原生的webview进行webrtc的支持性测试,光是引入并跑起来这个第三方的的webview就遇到很多坑。
第三方webview包括Intel的crosswalk,腾讯x5.但是crosswalk很早官方就已经不更新了,大概2017年2018年左右英特尔就已经不更新了不维护了,所以说现在crosswalk没有官网可以去找了。只能找历史中的其他人的帖子。

crosswalk使用提示报错 mismatch of cpu architecture



从应用商店安装了这个东西也并没有什么卵用,问题根本不在这。

正常使用crosswalk这一类的第三方的流程:

引入crosswalk的aar,直接拖进libs文件夹,然后配置在android/app/build.gradle。

repositories {flatDir {dirs 'libs'}
}dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])implementation(name: 'xwalk_core_library', ext: 'aar')}

似乎配置结束了,然后就是在Java类中使用:
MainActivity.java

/*** @Author: jakezhang* Company:DHC* Description: crosswalk webview 测试webrtc demo* Date: 2020/3/25 15:12**/
public class MainActivity extends XWalkActivity/*AppCompatActivity*/ {private final String TAG = "XWalkActivity-Test";private XWalkView xWalkWebView;//以下两个url需要vpnprivate String mUrl = "https://beijing.speedvr.cn:444/index7.html";
//    private String mUrl = "https://appr.tc/r/1472583691?vrc=H264&vsc=H264";
//    private String mUrl = "https://appr.tc/r/18629586538?vrc=H264&debug=loopback&vsc=H264";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);xWalkWebView = findViewById(R.id.xWalkView);}@Overridepublic void onXWalkReady() {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED|| ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED|| ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED|| ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO},3332);} else {xWalkWebView.loadUrl(mUrl);}} else {xWalkWebView.loadUrl(mUrl);}}@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {if (requestCode == 3332) {for (int i = 0; i < grantResults.length; i++) {if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {Toast.makeText(this, "请授予录音,拍照等权限" + permissions[i], Toast.LENGTH_LONG).show();return;}}}xWalkWebView.loadUrl(mUrl);}@Overrideprotected void onDestroy() {if (xWalkWebView != null) {xWalkWebView.onDestroy();xWalkWebView = null;System.gc();}super.onDestroy();}}

布局activity_main.xml:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><org.xwalk.core.XWalkViewandroid:id="@+id/xWalkView"android:layout_width="wrap_content"android:layout_height="wrap_content"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

AndroidManifest.xml配置文件:
这里有一个需要注意的是,硬件加速,必须开启。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.xlabs.webrtc_crosswalk_demo2"><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:hardwareAccelerated="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

到此,似乎,应该结束了,应该正常调用这个crosswalk的webview了,但是并没有,报错,上面提到的mismatch of cpu architecture的错误。

解决:

其实可以猜想可能是abi架构的问题导致的,但是到底应该怎么配置,查了很多资料,这里贴出来配置:

android {............
//不加这个配置会提示mismatch of cpu architecture跳转到应用商店下载crosswalk project runtime app。defaultConfig {ndk {abiFilters 'armeabi-v7a','x86'}}}

解决问题,出效果:
加载了我本地的html:

这里记录一下爬坑过程。

解决问题参考资料:

https://www.meiwen.com.cn/subject/mxnvlqtx.html
https://www.learningsomethingnew.com/how-to-solve-mismatch-of-cpu-architecture-error-in-cordova-crosswalk-plugin

学习参考资料:

https://blog.csdn.net/bingdele/article/details/90742628

GitHub demo:

https://github.com/wesley-fly/crosswalk-webrtc

android使用crosswalk webview报错相关推荐

  1. Crosswalk 运行报错问题

    android 集成Crosswalk XWalk遇到的问题: 1.android studio编译项目报错: Binary XML file line #1: Error inflating cla ...

  2. Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法

    Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法 参考文章: (1)Failed to resolve: com.andr ...

  3. Xamarin Android真机测试报错

    Xamarin Android真机测试报错 Xamarin Android真机测试报错,错误信息为INSTALL_CANCELLED_BY_USER.出现这个错误,通常都是真机上开发者选项设置错误.由 ...

  4. 【错误记录】Android Studio 配置 AspectJ 报错 ( all buildscript {} blocks must appear before any plugins {} )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Android Studio 配置 AspectJ 报错 : Build file 'D:\002_Project\002_Android_Le ...

  5. Android Studio support 26.0.0-alpha1 Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法

    Android Studio support 26.0.0-alpha1 Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法 ...

  6. android studio 自动引用,Android Studio三方引用报错但是项目可以运行的解决方案

    Android Studio第一次启动的Fetching android sdk component information的问题 1)进入刚安装的Android Studio目录下的bin目录.找到 ...

  7. android studio 编译遇到报错 app:compileDebugJavaWithJavac 处理办法

    android studio编译遇到报错app:compileDebugJavaWithJavac处理办法 android studio 在编译时经常会遇到如下图片中这个错误,但是程序运行时可以正常运 ...

  8. 身份证阅读器Android相片解码库报错libwlt2bmp.so:has text relocations解决方案

    身份证阅读器Android相片解码库报错libwlt2bmp.so:has text relocations,如下图的几种情况. libwlt2bmp.so是部里的相片解码库,身份证芯片里面存储的相片 ...

  9. Android 5.1编译报错之—uses or overrides a deprecated API.

    Android 5.1编译报错之-uses or overrides a deprecated API. 在编译Android 5.1时遇到如下报错 frameworks/support/v4/jav ...

最新文章

  1. PythonR爬取分析赶集网北京二手房数据(附详细代码)
  2. 文档扫描:深度神经网络在移动端的实践
  3. ubuntu下无法在目录下创建文件夹,权限不足解决办法
  4. Redis自定义动态字符串(sds)模块(二)
  5. 基于JAVA+SpringMVC+Mybatis+MYSQL的网上商城系统
  6. 高斯列元素消去法c语言,【大神在哪里】高斯-列主元消去法
  7. c fun函数求n个整数的平均值_Python语法示例——函数
  8. 集成极光推送和厂商通道相关总结
  9. 学生用计算机的按键名称,计算器各个键的功能
  10. python 快速排名发包_SEO优化快速排名-发包技术
  11. 北大计算机系录取通知书,北京大学98级计算机系本科同学毕业十周年聚会
  12. 自制树莓派PICO RP2040开发板+例程(I2C读取LM75和AHT20 温度数据)
  13. JavaEE简易聊天室(Netbeans:Servlet+Cookie+Session)
  14. Good Ticket(深搜)
  15. 天津大学计算机学院研究生报录比,天津大学2017年考研报录比
  16. Python从放弃到入门,公众号历史文章爬取成pdf的项目实践与自主学习法
  17. python解椭圆方程的例题_如何用python从3个点求椭圆方程
  18. 安卓10(Android10\API29)保存图片到相册DCIM/Camera
  19. 1012: 8除不尽的数
  20. 火车头采集之采集规则编写

热门文章

  1. 调节e18-d80nk的测量距离_常用测量仪器操作教学 | 视频+图文
  2. 电脑截图如何快速识别文字?3分钟教会你快速截图识别怎么做
  3. VM VirtualBox虚拟机添加虚拟硬盘
  4. 【信号处理】数字双相码仿真含Matlab源码
  5. Dajngo数据模型
  6. 总结了近百个Android优秀开源项目,覆盖Android开发的每个角落。 .
  7. 串口 IIC PWM 相关
  8. 高防服务器稳定性原因,企业租用高防服务器有什么原因呢?
  9. 倒排索引 java_倒排索引原理和实现
  10. 网址怎么输入打开?网站和网址有什么区别?