网络上有关如何在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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)