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.
我在 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.