Android Studio,OpenCV jar,java.lang.ClassNotFoundException:org.opencv.R $styleable

Android Studio,OpenCV jar,java.lang.ClassNotFoundException:org.opencv.R $styleable,第1张

概述网络上有关如何在AndroidStudio中使用OpenCV的大多数示例都涉及将OpenCV模块导入到您的项目中.但是,我试图将OpenCV用作jar,以便避免使用OpenCV的副本使源代码控制存储库混乱.这些就是我为名为“app”的应用所执行的步骤.答:在/Project/apps下创建一个libs目录.将OpenCVjar

网络上有关如何在Android Studio中使用OpenCV的大多数示例都涉及将OpenCV模块导入到您的项目中.但是,我试图将OpenCV用作jar,以便避免使用OpenCV的副本使源代码控制存储库混乱.

这些就是我为名为“ app”的应用所执行的步骤.

答:在/ Project / apps下创建一个libs目录.将OpenCV jar放在此处.还将opencv本机库放在子目录中.

B.在/Project/app/build.gradle中执行以下 *** 作

将这些行放在顶部:

repositorIEs { flatDir { dirs 'libs'    } }

将这些行放在androID部分中:

sourceSets.main.jnilibs.srcDirs = ['libs']

将此行放在依赖项部分:

    compile filetree(dir: 'libs', include: ['*.jar'])

C.在应用程序标签之后,将这些行添加到AndroIDManifest.xml中.

    <uses-sdk androID:minSdkVersion="9"/>    <uses-permission androID:name="androID.permission.CAMERA"/>    <uses-feature androID:name="androID.harDWare.camera" androID:required="false"/>    <uses-feature androID:name="androID.harDWare.camera.autofocus" androID:required="false"/>    <uses-feature androID:name="androID.harDWare.camera.front" androID:required="false"/>    <uses-feature androID:name="androID.harDWare.camera.front.autofocus" androID:required="false"/>

D.不确定是否需要这样做,我尝试了是否使用-似乎没有区别:我在AndroIDManifest.xml的application标记内添加以下行:

        <uses-library androID:name="org.opencv.androID.JavaCameraview" />

E.最后是我的布局xml:

    <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:tools="http://schemas.androID.com/tools"    xmlns:opencv="http://schemas.androID.com/apk/lib/org.opencv.androID.JavaCameraview"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent" >    <org.opencv.androID.JavaCameraview        androID:layout_wIDth="fill_parent"        androID:layout_height="fill_parent"        androID:visibility="gone"        androID:ID="@+ID/main_activity_surface_vIEw"        opencv:show_fps="true"        opencv:camera_ID="any" />    </linearLayout>

这一切都很好.我可以在自己的活动中引用OpenCV,而不会出错.但是布局编辑器给出以下错误:无法实例化以下类:org.opencv.androID.JavaCameraview. java.lang.classNotFoundException:org.opencv.R $styleable.

如果只是一个渲染问题,也许我可以忽略它,但是当我运行它时会发生类似的错误.

我想念什么?

(我知道SO中关于此错误的问题有点类似,但他的解决方案涉及导入整个模块,该模块确实有效,但正是我要避免的事情.)

解决方法:

错误消息:

The following classes Could not be instantiated: org.opencv.androID.JavaCameraview. java.lang.classNotFoundException: org.opencv.R$styleable

表示在构建时找不到OpenCV资源.如果您将OpenCV包含在jar库中,那将是问题的根源-jar中没有资源.

解决方案是将OpenCV构建为AAR,因为AAR确实有资源.为此构造一个库模块,将其编译为AAR,然后在需要的任何地方重复使用该归档文件.

总结

以上是内存溢出为你收集整理的Android Studio,OpenCV jar,java.lang.ClassNotFoundException:org.opencv.R $styleable全部内容,希望文章能够帮你解决Android Studio,OpenCV jar,java.lang.ClassNotFoundException:org.opencv.R $styleable所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1078335.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存