Android Studio JavaCv 和 OpenCv:在包 'android.javacv' 中找不到属性 'camera_type' 的资源标识符

Android Studio JavaCv and OpenCv : No resource identifier found for attribute 'camera_type' in package 'android.javacv'

我在 Android Studio 上有 javacv 和 opencv。以下代码是我的 activity_main.xml;

android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="android.javacv.MainActivity">

<org.bytedeco.javacv.android.example.CvCameraPreview
    android:id="@+id/camera_view"
    android:layout_width="576dp"
    android:layout_height="295dp"
    android:layout_gravity="center"
    app:camera_type="front"
    app:scale_type="full"
    tools:layout_editor_absoluteY="8dp"
    tools:layout_editor_absoluteX="8dp"
    tools:ignore="MissingConstraints" />

<ImageButton
    android:id="@+id/imageButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="false"
    android:background="@android:drawable/screen_background_light_transparent"
    android:backgroundTint="@android:drawable/screen_background_dark_transparent"
    android:visibility="visible"
    app:srcCompat="@android:drawable/ic_menu_camera"
    tools:ignore="ContentDescription,MissingConstraints"
    tools:layout_editor_absoluteX="520dp"
    tools:layout_editor_absoluteY="129dp" />

下面的代码是attrs.xml;

<resources>
<declare-styleable name = "CameraBridgeViewBase" >
   <attr name="show_fps" format="boolean"/>
   <attr name="camera_id" format="integer" >
      <enum name="any" value="-1" />
      <enum name="back" value="99" />
      <enum name="front" value="98" />
   </attr>
</declare-styleable>

和 Android Studio 编译器输出;

C:\Users\Asus\Desktop\Android Project\proj\javacv\app\src\main\res\layout-v21\activity_main.xml
Error:(10) No resource identifier found for attribute 'camera_type' in package 'android.javacv'
Error:(10) No resource identifier found for attribute 'scale_type' in package 'android.javacv'
C:\Users\Asus\Desktop\Android Project\proj\javacv\app\build\intermediates\res\merged\debug\layout-v21\activity_main.xml
Error:(10) No resource identifier found for attribute 'camera_type' in package 'android.javacv'
Error:(10) No resource identifier found for attribute 'scale_type' in package 'android.javacv'

错误:任务“:app:processDebugResources”执行失败。 com.android.ide.common.process.ProcessException: 未能执行 aapt

我在这里找到了解决方案

假设我们都使用名为 CvCameraPreview.java 的 bytedeco's 示例,在第 139 行附近,我还必须更改

int camType = array.getInt(R.styleable.CvCameraPreview_camera_type, CAMERA_BACK);
int scaleType = array.getInt(R.styleable.CvCameraPreview_scale_type, SCALE_FIT);;

int camType = 99;
int scaleType = 1;

让一切顺利进行。也感谢您的代码,它对我有帮助!现在我看到了启用了 cv 的实时图片,冒险可以开始了:)

PS:我的环境是AndroidStudio 2.3.3,项目是compileSdkVersion和buildToolsVersion 25,我的phone是Android7.1.1.