解决安卓USB摄像头UVCCamera运行报错问题 Could not resolve com.serenegiant:common:2.12.4 libuvccamera ndk-build.cmd

UVCCamera开源项目: https://github.com/saki4510t/UVCCamera
基于原UVCCamera项目,已解决运行报错的问题:https://github.com/hanye6/UVCCamera

  最近项目中要使用到USB摄像头的功能,然后就找到了UVCCamera这个开源项目,clone下来后,编译运行要报错,下面带你一步步解决错误,成功运行项目(文末有福利);

第一个错误:

Could not resolve com.serenegiant:common:2.12.4

解决方法:
打开project的build.gradle,替换掉原来的maven url,如下:

allprojects {
    repositories {
//    	google()
		maven { url 'https://maven.google.com' }
		jcenter()
		//maven { url 'http://raw.github.com/saki4510t/libcommon/master/repository/' }
		//使用下面的maven url即可
		maven { url 'https://gitee.com/liuchaoya/libcommon/raw/master/repository/' }
    }
}

第二个错误:

CreateProcess error=2, 系统找不到指定的文件。
Execution failed for task ':libuvccamera:ndkBuild'.
A problem occurred starting process 'command 'null/ndk-build.cmd''

在这里插入图片描述
解决方法:
打开设置,确保如图已下载NDK,没有下载的就选一个下载,然后点击如下图标,打开设置,设置好NDK的位置即可。
在这里插入图片描述
在这里插入图片描述

第三个错误:

Execution failed for task ':libuvccamera:ndkBuild'.
Process 'command 'G:\win7\developSoftware\androidSDK\ndk\21.0.6113669/ndk-build.cmd'' finished with non-zero exit value 2

解决方法:
打开Application.mk,修改APP_ABI,
修改前 APP_ABI := armeabi armeabi-v7a x86 mips
修改后 APP_ABI := armeabi-v7a x86
在这里插入图片描述
第四个错误:

 Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
        at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
        at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
        at com.serenegiant.usbcameratest.MainActivity.onCreate(MainActivity.java:61)

解决方法:
打开AndroidManifest.xml,修改application的theme:
修改前 android:theme="@style/AppTheme"
修改后 android:theme="@style/Theme.AppCompat"

第五个错误:

 Caused by: android.view.InflateException: Binary XML file line #32 in com.serenegiant.usbcameratest:layout/activity_main: Binary XML file line #32 in com.serenegiant.usbcameratest:layout/activity_main: Error inflating class com.serenegiant.widget.SimpleUVCCameraTextureView
     Caused by: android.view.InflateException: Binary XML file line #32 in com.serenegiant.usbcameratest:layout/activity_main: Error inflating class com.serenegiant.widget.SimpleUVCCameraTextureView
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:858)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1010)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:965)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1127)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:686)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:538)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
        at com.serenegiant.usbcameratest.MainActivity.onCreate(MainActivity.java:61)
        at android.app.Activity.performCreate(Activity.java:7893)
        at android.app.Activity.performCreate(Activity.java:7880)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3287)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3461)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2048)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:227)
        at android.app.ActivityThread.main(ActivityThread.java:7573)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:953)
     Caused by: java.lang.UnsupportedOperationException: TextureView doesn't support displaying a background drawable
com.serenegiant.usbcameratest E/AndroidRuntime:     at android.view.TextureView.setBackgroundDrawable(TextureView.java:326)
        at android.view.View.setBackground(View.java:23033)
        at android.view.View.<init>(View.java:5869)
        at android.view.View.<init>(View.java:5265)
        at android.view.TextureView.<init>(TextureView.java:166)
        at com.serenegiant.widget.SimpleUVCCameraTextureView.<init>(SimpleUVCCameraTextureView.java:50)
        at com.serenegiant.widget.SimpleUVCCameraTextureView.<init>(SimpleUVCCameraTextureView.java:46)

解决方法:
打开activity_main.xml,把SimpleUVCCameraTextureView的android:background="#ff000000" 这一句去掉即可。
解决完以上错误,就可以把项目运行起来啦!

然后,福利来了!
1.发现一个特别好用的插件,github clone或下载特别慢的,chrome下载一个插件,立刻就起飞了!
在这里插入图片描述
2.访问GitHub特别慢的,还可以参考如下方法,设置完嗖嗖的:
原文链接:https://zhuanlan.zhihu.com/p/93436925
在这里插入图片描述
希望能够帮助到你。

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
"could not resolve com.android.tools.build:aapt2:7.3.0-8691043"这个错误表示无法解析`com.android.tools.build:aapt2:7.3.0-8691043`依赖项。这通常是由以下原因导致的: 1. 版本不匹配:在您的项目或模块的`build.gradle`文件中,您可能指定了无法解析的`aapt2`版本。请确保所使用的版本存在,并确保版本号正确。 2. 依赖项仓库未正确配置:在`build.gradle`文件中,确保已正确配置依赖项的仓库。您可以在`repositories`部分添加`google()`和`jcenter()`仓库。 3. 网络连接问题:如果您的网络连接不稳定或被阻止,可能会导致Gradle无法解析该依赖项。请确保您的网络连接正常,并且可以访问所需的仓库。 为了解决这个问题,您可以尝试以下解决方法: 1. 更新版本:尝试更新`com.android.tools.build:aapt2`的版本,比如使用更稳定的版本号。 2. 检查依赖项配置:检查您的`build.gradle`文件中的依赖项配置,确保所有依赖项的版本和仓库正确配置。 3. 清理和重新构建项目:有时,清理和重新构建项目可以解决依赖项解析问题。您可以通过在终端或命令提示符窗口中运行`gradlew clean`来清理项目,然后运行`gradlew build`重新构建项目。 4. 检查网络连接:确保您的网络连接正常,并且可以访问所需的依赖项仓库。 如果上述方法仍然无法解决问题,您可以尝试搜索相应的错误信息以获取更多的解决方法,或者查阅相关的文档和论坛以了解解决方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值