添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

首先,如果你的APP可以正常安装包括第三方或者自己编译的,那么就用x86,因为这个架构的虚拟机很快;如果像我一样,编译出的apk中的so都是ARM的,那么就需要ARM架构的虚拟机,否则就会报下面的错误。x86兼容性不够 , 很多app装不上 或者装上了不能玩。市面上的模拟器大多是x86的,因此如果安装不上的话,可以考虑是否是不支持x86架构的原因。用的谷歌官方的模拟器, intel x86 系统镜像 ,开了 kvm 加速 ,结果装了几个应用都失败,如 qq 各种版本、京东客户端、触宝输入法等。提示信息是 Failure [INSTALL_FAILED_NO_MATCHING_ABIS],应该是这些应用没适配 x86 的设备。百度外卖、 x-plore 安装成功。

今天使用模拟器安装应用软件运行后,发现报错如下:

MissingLibraryException: lib/x86/libgnustl_shared.so

02-07 02:53:39.122 7607-7639/com.gala.video E/AndroidRuntime: FATAL EXCEPTION: JobManager-5-12
Process: com.gala.video, PID: 7607
com.getkeepsafe.relinker.MissingLibraryException: lib/x86/libgnustl_shared.so
at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:85)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:92)

我这边的模拟器是在创建时Android studio默认的配置,是x86架构的模拟器。系统为什么默认是这个架构的模拟器呢?原来windows安装虚拟机之前我们都必须打开BIOS里面的虚拟设备开关:在 Intel CPU 的主机上为了加速AVD模拟器的运行速度,需要启用 HAXM。

  • 第一步:先进入 BIOS 启用 VT(Virtualization Technology)虚拟技术选项;
  • 第二步:到Android studio的SDK Manager中下载Intel x86 Emulator Accelerator(HAXM install)

然后我们创建一个模拟器后,默认的配置就是x86架构的,优点就是速度很快,但是他有很大的缺点就是兼容性不够,导致很多编译出来是ARM架构的应用程序无法安装,或者安装后启动报错。上面的报错的意思就是,你开启的模拟器是x86的,所以你APP里面相关的so库也要是x86的,但是在你打包好的APP中只找到了ARM的这个so库,所以就报错了。那么我们要做的就是创建一个ARM架构的虚拟机:

我们配置一个ARM处理器架构的虚拟机如下图:

选择ARM虚拟机时,右下角会提示,这个要比x86的慢十倍以上,亲测,可能慢不止十倍。

当然你可以把虚拟机内存提高一些:

上面完成之后,启动我们的ARM虚拟机,尝试安装下apk即可

首先,如果你的APP可以正常安装包括第三方或者自己编译的,那么就用x86,因为这个架构的虚拟机很快;如果像我一样,编译出的apk中的so都是ARM的,那么就需要ARM架构的虚拟机,否则就会报下面的错误。x86兼容性不够 , 很多app装不上 或者装上了不能玩。市面上的模拟器大多是x86的,因此如果安装不上的话,可以考虑是否是不支持x86架构的原因。用的谷歌官方的模拟器, intel x86 系统镜...
以前接触过NDK的开发,是在Eclipse环境下开发的。今天尝试了下用 Android Studio 来配置,结果真是处处都是坑,现在总结一下: 1. 首先创建MainActivity,添加nativa方法: package com .jackie.hellondk; import android .support.v7.app.App Com patActivity; import android .o
安卓App在启动或运行时经常会遇到.so动态库加载失败的情况,其中具体分2种情况: 1.在程序启动时加载失败,这时候就需要用Re linker 去重新加载,可以看我的另外2篇博文:Re linker 源码分析、 Android 安卓本地库加载程序Re linker 简单封装 2.在程序运行过程中,已经加载好的.so库被卸载,导致使用的时候找不到符号,这种情况下就要在运行过程中,需要用到库的时候重新去加载 第2种情...
Android 接入融云sdk后,在低版本机型均可正常运行; 但部分客户反映在部分手机会提示,应用多次启动失败(安装失败),尝试清除记录后重试,argetSdkVersion 为24时,找不到libsqlite.so,导致App直接崩溃。 在不同版本手机多次模拟后 找出错误原因以及 报错 日志如下: Process: com .dhx... 考虑到主要使用场景是频繁地进行写入更新,我们需要有增量更新的能力。我们考虑将增量 kv 对象序列化后,append 到内存末尾。 这样同一个 key 会有新旧若干份数据,最新的数据在最后;那么只需在程序启动第一次打开 mmkv 时,不断用后读入的 value 替换之前的值,就可以保证数据是最新有效的。 使用 append 实现增量更新带来了一个新的问题,就是不断 append .
昨天使用 Android Studio 虚拟机发现所有虚拟机的状态都变为不可用,右下角提示 consider using a system image with Google APIs to enable testing with Google Play Services 谷歌翻译结果是 考虑使用与谷歌API的系统映像,以使测试与谷歌播放服务
一般比较早期的项目都是eclipse结构的,可是在现如今 Android Studio 是官方唯一标准的年代不用 Android Studio 就似乎有点儿掉队。可是有些公司由于种种原因却不能直接改成gradle结构,那么今天这篇文章就是帮助大家在不改变项目结构的情况下依然使用 Android Studio 来开发这些老旧的 Android app。 首先我们来看一下gradle项目的结构是什么样
软硬件配置:Windows + P5000 16GB + Android Studio 4.1.1 1、waiting for debugger debug时手机一直停留在这个页面 原因:个人情况不一样,可 解决 办法 ♦ 重启手机, ♦ 重启 android studio , ♦ 关掉手机里【开发者选项】里的【等待调试程序】 2、no target device found 问题:明明连接手机但是无法找到设备 1、数据线连接时弹出【USB用于】 选择 【传输文件】 2、【开发者选项】里 选择 【USB
适用于MacOS M1的原生安卓sdk( arm 64位原生),因为下载非常复杂(须用到Arctic Fox Android Studio ),故制作压缩包。 版本为API 30, 安卓11 Android 11 R 其中包含可用于M1的Emulator模块,可以在M1上使用安卓 模拟器 进行开发。 解压后放到/Users/{UserName}/ Library / Android /目录中。
AndroidStudio中打开新项目提示:Unrecognized Android Studio (or Android Support plugin for IntelliJ IDEA) 李白菜。: 研究了一天,终于参考这个解决了。虽然按步骤都修改了(精准的参考了楼主截图的版本),依然报错,但错误不一样,一步一步解决了!。 表情包 面试:Zygote通信为什么用Socket,而不是Binder? 本质是原因二,如果没有原因二是可以采用一系列手段保证原因一不会出现,但是都确定不用binder方案了,采用的流程自然会出现原因一 面试:Java中的指令重排以及引起的问题 zcbdandan: 搜了下,说idea是使用 java -c还是-debug的参数,可以避免重排序。 面试:Java中的指令重排以及引起的问题 被撕裂的缠绵: 也许是因为重排序发生在编译时,而idea debug的是编译后的代码? 面试:Java中的泛型会被类型擦除,那为什么在运行期仍然可以使用反射获取到具体的泛型类型 睡醒的人想拯救世界: