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
그럼 정상적으로 구동한다.
댓글