3、开发环境准备:Android Studio配置、Gradle依赖引入、AndroidManifest权限声明

好,咱们正式开始动手了。这一章我带你搭好开发环境。说白了,就是让Android Studio认识人脸识别,让Gradle把需要的库拉下来,再在清单文件里把权限声明好。

这三件事做完,你就能写代码调摄像头了。我在项目里见过太多人,代码写了一大堆,结果一运行就崩——回头一看,权限没加。嗯,咱们别犯这种低级错误。

3.1 Android Studio 版本与 SDK 配置

我个人习惯用最新稳定版的Android Studio。目前推荐 Arctic Fox 或更高版本。为什么?因为CameraX库在较新的IDE里支持更好,你想想看,老版本可能连AGP(Android Gradle Plugin)都升级不上去。

打开Android Studio后,先检查SDK Manager:

  • 确保安装了 Android SDK Platform 29 或更高(人脸识别API从Android 10开始正式支持)
  • 确保 NDKCMake 已安装(部分底层库需要)
  • 建议开启 Android 10 (API 29) 的模拟器或真机

重要提醒:人脸识别API在Android 10(API 29)及以上才可用。如果你还在用API 28,那得先升级项目。

我在项目中遇到过一件事:有个同事用API 28的模拟器调试,折腾了一上午,人脸识别一直返回“不支持”。后来发现是API版本太低。所以,记得先看一眼你的 compileSdktargetSdk

3.2 Gradle 依赖引入

接下来是Gradle。咱们需要引入两个核心库:CameraX(用来预览和拍照)和 Google ML Kit 的人脸检测(用来做人脸识别)。

打开你的 app/build.gradle 文件,在 dependencies 块里加上这些:

dependencies {
    // CameraX 核心库
    def camerax_version = "1.3.1"
    implementation "androidx.camera:camera-core:${camerax_version}"
    implementation "androidx.camera:camera-camera2:${camerax_version}"
    implementation "androidx.camera:camera-lifecycle:${camerax_version}"
    implementation "androidx.camera:camera-view:${camerax_version}"

    // Google ML Kit 人脸检测
    implementation "com.google.mlkit:face-detection:16.1.6"
}

为什么要用CameraX?因为它比原生的Camera2 API简单太多了。你想想看,以前写Camera2要处理一大堆回调,现在用CameraX,几行代码就能搞定预览。

另外,如果你需要处理图片,可能还需要加一个图片加载库,比如Coil或Glide。不过这不是必须的,咱们先聚焦在人脸识别上。

小技巧:建议在 gradle.properties 里加上 android.useAndroidX=true,确保所有依赖都使用AndroidX版本。老项目容易踩这个坑。

3.3 AndroidManifest 权限声明

这一步最容易忘。我曾经有一次把代码都写好了,运行到真机上,结果摄像头黑屏——找了半天,发现 AndroidManifest.xml 里没加权限。

打开你的 AndroidManifest.xml,在 <manifest> 标签内加上:

<uses-permission android:name="android.permission.CAMERA" />

<!-- 如果需要在后台处理人脸数据,还需要这个 -->
<uses-permission android:name="android.permission.INTERNET" />

<!-- 可选:用于保存人脸图片到外部存储 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="28" />

注意,CAMERA 权限是 危险权限,光在清单文件里声明还不够。你需要在代码里动态申请。这个咱们下一章会讲。

避坑指南:我曾经在Android 11(API 30)上测试,发现 WRITE_EXTERNAL_STORAGE 权限在API 29以上已经废弃了。如果你用 targetSdkVersion 30 或更高,建议用 MediaStore 来保存图片,而不是直接写文件。

3.4 知识体系总览

下面这张图帮你理清本章的核心逻辑。从开发环境到权限声明,每一步都是环环相扣的:

开发环境准备:核心流程 Android Studio 配置 SDK 29+ / NDK / CMake Gradle 依赖引入 CameraX + ML Kit 权限声明 CAMERA / INTERNET CameraX 预览 androidx.camera 人脸检测 com.google.mlkit 动态权限申请 ActivityCompat 最终目标:可运行的人脸识别 Demo CameraX 预览 → 人脸检测 → 结果回调

3.5 验证环境是否就绪

配置完成后,建议先跑一个空项目,看看能不能正常编译。我个人习惯在 MainActivity 里先写一行日志:

Log.d("FaceRecognition", "环境准备完成,SDK版本:" + Build.VERSION.SDK_INT);

如果日志能正常打印,说明Gradle依赖和SDK都没问题。接下来就可以进入下一章——写代码了。

提示:如果你用的是模拟器,记得在创建模拟器时勾选 “Use Host GPU”,否则CameraX预览可能会卡顿。真机调试的话,建议用Android 10以上的设备。

好,环境就绪。咱们下一章见。


公众号:蓝海资料掘金营,微信 deep3321