본문 바로가기
전체보기/Java&Kotlin&Android

[Android] UVCCamera

by 피망우유 2021. 6. 28.

 

https://github.com/saki4510t/UVCCamera

 

saki4510t/UVCCamera

library and sample to access to UVC web camera on non-rooted Android device - saki4510t/UVCCamera

github.com

 

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

위 원본을 아래와 같이 수정

 

allprojects {
    repositories {
//    	google()
		maven { url 'https://maven.google.com' }
		jcenter()
		maven { url 'https://gitee.com/liuchaoya/libcommon/raw/master/repository/' }
    }
}

 

local.properties 파일 생성 후 아래와 같이 입력

 

sdk.dir=[설치경로입력]\\Android\\Sdk
ndk.dir=[설치경로입력]\\Android\\Sdk\\ndk\\16.1.4479499

gradle build 명령어로 빌드하기보다는 Android Studio로 빌드하는 것을 추천

build 성공 후 UVCCamera/libuvccamera/build/intermediates 폴더에서 생성된 so 파일 확인

 

JDK, SDK, Java 버전이 안 맞아서 생기는 에러가 대부분이므로 버전만 잘 맞춰주도록 하자...

빌드가 시작되면 CPU가 터질려고 한다

빌드가 완료된 후 다음과 같은 에러가 날 수 있는데

 

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.serenegiant.usbcameratest/com.serenegiant.usbcameratest.MainActivity}: android.view.InflateException: Binary XML file line #32: Binary XML file line #32: Error inflating class com.serenegiant.widget.SimpleUVCCameraTextureView

 

이 경우 해당 폴더의 AndroidManifest.xml 파일을 열고 <com.serenegiant.widget.SimpleUVCCameraTextureView 하단에 선언된 android:background="#ff000000" 부분을 주석처리하거나 지워버리자

 

Theme관련 에러는 다음과 같이 수정한다

android:theme="@style/Theme.AppCompat"

 

빌드를 완료하고 수많은 테스트 프로그램 중 하나를 실행했는 데 이제 다음과 같은 에러가 나타날 수 있다

 

java.lang.UnsupportedOperationException: open failed:result=-1

분명 연결된 USB 카메라를 인식했음에도 불구하고 화면에 연결할려고 하면 뜨는 에러이다.

해결 방법은 NDK 버전을 다음 링크에 명시된 버전으로 변경하거나 (안됨)

 

https://www.programmersought.com/article/28121650203/


libuvccamera/src/main/jni/Application.mk 에 명시되어 있는 다음 부분의 주석을 해제하자.

NDK_TOOLCHAIN_VERSION := 4.9

 

그럼 정상적으로 구동한다.

댓글