Android Studio 编译 UVCCamera

准备工作

所用软件

  • Windows 11 / Ubuntu 20.04
  • Android Studio 2020.3.1(当时的最新版)
  • NDK 17.2.4988734
  • Target SDK 27
  • Compile SDK 29.0.3
  • JDK 1.8
  • Gradle 7.2

所用硬件

检查手机是否支持UVC

找到Android的SDK安装位置,并找到 platform-tools\adb.exe 工具,在Windows Powershell终端中依次输入如下命令:

.\adb.exe shell
cd sys/bus/usb/drivers
ls

查看输出,如果输出中有uvcvideo则表示手机支持UVC摄像头。
在这里插入图片描述

代码下载

项目地址下载源码。

项目设置

SDK国内源

将HTTP Proxy修改为 Auto-detect proxy settings,勾选 Automatic proxy configuration URL,并填入国内源地址,这里是

mirrors.dormforce.net:80

在这里插入图片描述
在Android SDK设置页面,勾选 Force https://… sources to fetched using http://
在这里插入图片描述

gradle 国内源

在 C:\Users\38325.gradle 文件夹下创建 init.gradle 文件。
在这里插入图片描述
输入如下内容:

allprojects{
    repositories {
        def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/public'
        def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter'
        all { ArtifactRepository repo ->
            if (repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                    remove repo
                }
            }
        }
        maven {
            url ALIYUN_REPOSITORY_URL
            url ALIYUN_JCENTER_URL
        }
    }
}

如果项目层的build.gradle文件内容如下:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'
        
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

将其修改如下:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'http://raw.github.com/saki4510t/libcommon/master/repository/' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

NDK设置

在local.properties文件中添加ndk.dir变量,将其赋值为ndk路径,这里使用的是r17版本。
在这里插入图片描述

程序运行

错误处理

ndk-build.cmd’’ finished with non-zero exit value 2

较新版本的ndk不支持原来的ABI,需要将 libuvccamera\src\main\jni\Application.mk 文件中的 APP_ABI改为

APP_ABI := arm64-v8a armeabi-v7a

Failed to resolve: com.serenegiant:common

添加依赖项,使用BaseActivity提示错误,造成这个原因是lib依赖中使用的implementation依赖在其他包中是不对外开放的,改成api方式依赖即可。
即把 libuvccamera 和 usbCameraCommon 中的 build.gradle文件下的

implementation("com.serenegiant:common:${commonLibVersion}") {
		exclude module: 'support-v4'
}

修改为

api("com.serenegiant:common:${commonLibVersion}") {
		exclude module: 'support-v4'
}

ERROR: Failed to resolve: com.serenegiant:common:2.12.4

duplicate class

删除aar包中某些文件再打包成aar

Build Output 栏内汉字出现乱码

Android Studio Build Output 栏内汉字出现乱码的解决方案

WiFi 连接手机

Android Quick Tip - ADB over WiFi

闪退问题修复

Android UVC Camera 闪退问题修复

解决Android UVCCamera stopPreview 报错 崩溃 闪退 问题

参考链接

Android Studio SDK 使用国内镜像源在线安装
这可能是介绍 Android UvcCamera 最详细的文章了
android设备外接多个usb摄像头

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android Studio 中添加 UVCCamera 库可以通过以下步骤实现: 1. 克隆 UVCCamera 库到本地。可以通过以下命令在终端中实现: ``` git clone https://github.com/saki4510t/UVCCamera.git ``` 2. 在 Android Studio 中打开你的项目,并在项目面板中右键点击你的项目名称,选择 `New` -> `Module`。 3. 在弹出的 `Create New Module` 对话框中选择 `Import Gradle Project`,然后点击 `Next`。 4. 在 `Import Project` 对话框中选择你刚刚克隆到本地的 UVCCamera 库所在的路径,然后点击 `Finish`。 5. 在你的项目的 `build.gradle` 文件中添加 UVCCamera 库的依赖。在 `dependencies` 中添加以下代码: ``` implementation project(':uvc_camera') ``` 6. 在你的项目的 `AndroidManifest.xml` 文件中添加以下权限: ``` <uses-feature android:name="android.hardware.usb.host" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> ``` 7. 在你的项目中使用 UVCCamera 库。可以参考 UVCCamera 库中的示例代码,例如 `CameraViewActivity.java`。 完成以上步骤后,你就成功地将 UVCCamera 库添加到你的 Android Studio 项目中了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值