搭载MAC M1 Pro芯片设备在Android Studio运行测试时遇架构兼容错误
解决M1 Pro设备上Android Studio测试时sqlite4java架构不兼容问题
问题根源
你遇到的错误是因为M1 Pro芯片采用arm64e架构,但测试依赖的libsqlite4java.dylib仅包含i386/x86_64架构,导致Robolectric加载库时出现不兼容问题。而应用能正常构建运行,是因为实际运行时调用的是Android系统自带的SQLite库,并非这个桌面端的sqlite4java库。
解决方案
用Rosetta 2兼容模式运行Android Studio
找到Applications目录下的Android Studio,右键选择「显示简介」,勾选「使用Rosetta打开」,重启Android Studio后再运行测试。AS会以x86_64兼容模式运行,匹配sqlite4java库的架构。升级Robolectric版本
较新的Robolectric版本已适配M1芯片的架构要求,将依赖升级到4.9及以上版本即可解决问题。在项目的build.gradle中更新依赖:testImplementation 'org.robolectric:robolectric:4.12.1'同步gradle后重新运行测试。
手动指定兼容arm64的sqlite4java库路径
若升级版本无法解决,可自行下载支持arm64架构的sqlite4java库,然后在build.gradle中配置路径:test { systemProperty 'sqlite4java.library.path', '/你的arm64版sqlite4java库所在路径' }或者在测试类的静态代码块中设置系统属性:
static { System.setProperty("sqlite4java.library.path", "/你的arm64版sqlite4java库所在路径"); }
内容的提问来源于stack exchange,提问作者Shreyas sethi
相关产品推荐
相关产品推荐

