Apple M1设备开发Android小tips

2022/4 更: Android studio 的arm版本基本可用 , 需要注意的就是jetpact 的几个引用过注入的框架需要更新到最新.

虽然m1来开发android是挺有优势的,苦于google目前还没有支持m1芯片的android studio版本(包括测试版) 截稿日期2021-5-14,所以我们当下可以选择idea2021,原生支持m1,而且编译速度运行效率更快(同时也会让你失去摸鱼时间),不过也不是直接安装idea就可以直接用,接下来就注意几个需要注意的点。

1.导入设置问题

千万别全部倒入setting.jar所有配置,如果你之前用的x86 pc的话,包括x86版本的mac之类的。最好收集自己的改动的选项单独导出,不然真的会有一些不可描述的bug。

2. android sdk的问题

这个比较容易解决,可以先安装mac intel版本的Android studio (后面还有用到),先不要用它打开任何project(除非你能忍受10年前老爷机做开发的速度),直接下载sdk和引导即可。用idea其实也可以下载android sdk ,但是可能有一些小问题。(下载sdk的时候不要下载模拟器 ,以及模拟器工具)

3. sdk配置问题

android sdk配置直接复制android studio sdk manager 里面的路径就可以,本文重要的是配置jdk路径

如果你遇到以下问题

以下问题出现在集成kapt插件的kotlin mvvm项目里,其他情况暂不包含,另外情况可联系我讨论

库文件缺失,class找不到

[ERROR java.lang.ClassNotFoundException: javax.xml.bind.JAXBException [duplicate]](https://stackoverflow.com/questions/65009201/error-java-lang-classnotfoundexception-javax-xml-bind-jaxbexception)

反射处理包编译错误

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
   > java.lang.reflect.InvocationTargetException (no error message)

* 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

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.1.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 7s
30 actionable tasks: 6 executed, 24 up-to-date

解决办法

1.首先在idea里引用android studio自带的jdk。 没错是android studio,因为idea自带的jar是aarch64版本,也就是arm64位支持的,他和x86的库有一些不一样,引用as的jdk是为了用x86的版本,也可以自己去甲骨文官网下载官方版本,建议是java11 本文不做介绍。

2.png

2.然后在以下这几个位置选择添加到的版本,在可以选择project sdk的地方一定要选,它可以随着项目引入sdk的变动而动态变化

1.png
3.png

3.gradle 设置,android studio里面一直把这个省略了,所以有一些人不知道,编译版本和gradle运行环境也需要保持一致

gradle.png

4.设置完成可以运行 运行之前别忘了clean 。不过缺点就是跑一个项目有多个java进程,一个intel 一个apple的


act.png

截稿,有疑问可以留言告诉我

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容