首先想到的是直接使用 V53 的源码,但无法应用到 Android 10 上,主要是 Android 10 的 WebView API 接口发生了一些变化。 10 中预编译的 Chromium Webview 版本,使用 WebView Shell,查看版本号为 74.0.3729.183: 然而,这里有一个巨大的坑。 在趟过 代码下载坑、编译坑、安装坑后,终于成功运行起来: 代码下载坑 由于众所周知的原因, Chromium 源码不能直接下载,我是挂了代理进行下载。 第一步,查看 Android 10 中 weview.apk 的签名信息。 可以预料,后面还会继续踩坑。没办法,只能遇坑填坑,这不就是程序员的工作职责吗?
2019 年 9 月 3 日,Google 发布了 Android 10 正式版。Android 10 聚焦移动创新、安全隐私和数字健康三大主题,全面打造最佳用户体验。 ? 在Android 10 版本中,官方的改动较大,相应的开发者适配成本还是很高的。 10开始已经无法完全标识一个设备,曾经用mac地址、IMEI等设备信息标识设备的方法,从Android 10开始统统失效。 而且无论你的APP是否适配过Android 10。 3.1 IMEI等设备信息 从Android10开始普通应用不再允许请求权限android.permission.READ_PHONE_STATE。 " android:maxSdkVersion="28"/> 3.2 Mac地址随机分配 从Android10开始,默认情况下,在搭载 Android 10 或更高版本的设备上,系统会传输随机分配的
H5定位 // 定位(location) settings.setGeolocationEnabled(true); String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); //设置定位的数据库路径 settings.setGeolocationDatabasePath(dir); w
0x00 前言Deepin v20.2.2系统支持运行Android应用,于是安装了Windows/Deepin双系统后,开始了运行Android应用的踩坑之旅。以下是在这过程中的踩坑记录。 0x01 安装uengineDeepin中是通过一个叫uengine的工具来支持Android应用的,这是一个基于anbox进行二次开发而成的工具。 它的基本原理是通过在Linux内核中安装Android所需要的内核模块(如:binder、ashmem等),然后运行一个Android容器而实现的。 dev目录下能够找到如下两个设备:crw-rw-rw- 1 root root 511, 0 7月 24 17:16 bindercrw-rw-rw- 1 root root 10 0x02 安装Android应用安装Android应用最简单的方法是在应用市场里下载安装,也可以使用命令行安装。
mmcv是其中重要的组件库,linux安装相对方便,Windows支持得不是很友好,本文记录Win10 安装mmcv踩坑过程。 mechanism Various CNN architectures High-quality implementation of common CUDA ops 但是在Windows上安装mmcv真的全是坑 环境配置 条目 内容 操作系统 Windows 10 显卡型号 GTX 1660 显卡驱动 456.71 CUDA 10.1 cuDNN 8.0.3 torch 版本 编译cpp文件并链接 python setup.py build_ext # 如果成功, cl 将会自动弹出来编译 flow_warp python setup.py develop # 安装 踩坑安装
踩坑了啊,又踩坑了啊! 这次踩到一个特别无语的常识坑。知道真相的那一刻,人就是整个麻掉。
前言 在 Android 开发过程中,有些功能是通用的,或者是多个业务方都需要使用的。 为了统一功能逻辑及避免重复开发,因此将该功能开发成一个 SDK 是相当有必要的。 背景 刚好最近自己遇到了类似需求,在开发完 SDK 之后,集成到项目或者提供给别人的时候遇到了一些坑,这里分享一下,以避免其他需要开发 SDK 的开发者们重复踩坑。 缺点:maven publish 有个坑。见下文分析。 表格对比如下: 集成方式 优点 缺点 提供 Module 没有坑 维护麻烦,没有代码保护 提供 AAR 文件 只有一个文件 有坑,更新麻烦 推送到仓库 集成方便,版本管理 maven publish有个坑 通过在 android 块里面添加 android { defaultPublishConfig "release" } 可以指定。
OpenCv在计算机视觉方面大有用处,这篇文章主要记录在Android Framework集成OpenCv,对Camera数据流进行处理,遇到的问题记录备忘。 层集成 (下面的三方算法,是指的三方算法采用到了opencv) 1、三方算法是源码 (如下面所示,image.cpp是三方算法源码,该源码image.cpp文件中调用到opencv) // -----Android.bp DT_NEEDED "liblog.so" is not specified in shared_libs Fix suggestions: Android.bp: shared_libs: [ diff --git a/frameworks/base/native/graphics/jni/Android.bp b/frameworks/base/native/graphics/jni/Android.bp "], + + proprietary:true, + For Android.bp: vendor_available: true For Android.mk: LOCAL_VENDOR_MODULE
首先当然是Android的环境搭建,这里还是推荐把整个Android开发环境都弄起来,顺便还可以学学Android。 关于Android环境搭建,以及使用Android Studio可以参考我的另一篇文章搭建安卓开发环境(Android Studio) 这里就不赘述了,需要注意的是,要安装好SDK,AVD(不是AV, "$NVM_DIR/nvm.sh" 不过也许你之前装过node,那么这里有坑,你要看看自己之前装的node是什么版本,实际RN在编译项目的时候会使用系统的node。 _extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module. _extensions..js (module.js:478:10) 首先查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装, 运行命令npm ls -g --
又到了周五的胡扯时间,今天来扯一扯坑。 最近,有一个感觉,就是一直在填坑,我想不止我一个人,不少奋战在一线的“勇士”,都在填坑。一般来说坑分两种,自己挖的,和别人挖的。 挖坑也是有水平的,有的坑你根本就无从下手,除非你有“多年的道行”,否则你可能做的不是填坑,而是把坑弄的更大。 除了有多年“挖坑”,“踩坑”,“填坑”,的道行,你大约还的总结出来一套,如何来补坑的办法。 1 望, 遇到一个坑,首先你需要判断的是他到底是不是一个坑,首先要望,你先不要有任何的动作,先要观察,因为不了解具体情况和成因的情况下,你做的任何事情,都肯能变得更糟。 在MY.CNF 中注销掉这个参数,重启动服务器 再次运行MYSQLBINLOG 解开BINLOG 后发现有错误,看了刚踩完一个坑,又来一个坑,经过查询后,提示是MYSQLBINLOG 的版本不对 ?
---- Unity 踩坑小知识点学习 Unity中的 碰撞盒检测 Physics.OverlapBox、OverlapCapsule、OverlapSphere 在Unity中常见的有两种检测方法
今天写了一个mysql数据库的用户新增模块,逻辑是根据用户 ID 查询用户数据,若不存在则创建新用户并返回用户数据,数据库是保持常连接状态,测试的时候发现无法读取最新数据,一直读取第一次的数据,然后就百度发现emmm,还真有志同道合的
needle [, int $offset = 0 ] ) 返回 needle 在 haystack 中首次出现的数字位置,以整型返回位置信息。如果没找到 needle, strpos() 将返回布尔型的 FALSE 值。
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65] 08:42:48.747 ERROR 18152 --- [et_127.0.0.1-10 这里只是想分享以下踩坑经验 希望大家不要像我一样粗心 java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.waitForConnect
──胡适 今天使用TreeMap踩坑了 代码如下: @Test void test() { Map<Integer, Object> map = new TreeMap<>(Comparator.comparing
在学习Gateway 限流的时候用到Sentinel,记录踩的坑。
当然本来可以装上1G多的VS Win10平台开发套件可能就能解决link.exe找不到的问题,嫌微软的东西太大太烦锁,所以还是用IDEA插件,发现调试只能CLion。
1.安装node会自动安装对应的npm版本 查看版本对应 https://nodejs.org/zh-cn/download/releases/
“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第2篇文章,点击查看活动详情” 先导 作为传统工业软件的翘楚,SAP 在世界范围内,被各大公司广泛使用,像迪卡侬,耐克等等都是用SAP软件作为办公软件 简单讲述一下我学了2个月的踩过的坑,感受,及展望. o(╥﹏╥)oo(╥﹏╥)o 怎么学的 最初听到ABAP 这个词时候还去世界语言排行查了一下,几百开外.心想这么土的语言,好不好入门等等. SAP学习流程图 通过视频学习视频 我看了好多视频,当然作为初学者确实也踩了不少雷,还有04年的视频心态崩了 .以下为我看到的比较好的视频 视频链接 学习内容均来自B站 . 51SAP 推荐指数 不懂看书就对了 , 我也就花了亿点点钱,踩了亿点点坑 .
params.putInt(MediaCodec.PARAMETER_KEY_REQUEST_SYNC_FRAME, 0); mMediaCodec.setParameters(params); } } 关键帧踩坑 或者 /system/vendor/etc/media_codecs.xml这是一个xml文件,可以直接看到MediaCodecs–>Decoders节点下的各个视频格式的支持情况,以**华为荣耀7x Android 也就是默认采用VBR 关于VBR CQ CBR区别,可查看Android原生编解码接口 MediaCodec 之——完全解析中的流控。 MediaCodecInfo.CodecProfileLevel.AVCLevel41); // Level 4.1 关于设置这两个参数,我发现某些设备上,设置了无效,还是默认值,经排查 是因为在android7.0 以下,android 内部写死了参数,编码出来的只能是Baseline,除非系统改过这个BUG,否者设置无效,甚至会导致configure参数失败。