目标应用程序:为Android设备开发Unity应用程序.Unity应用程序将使用OpenCV进行各种图像处理功能。
计划方法:
在Android Studio中为Android应用程序开发OpenCV。这将有一个与Unity共享数据的桥接类。
将android studio项目导出到jar
在Unity中使用jar和其他资源作为插件
使用Unity中的Android Java支持类,使用android中的桥接类访问所需的图像处理功能。
构建Android平台的统一应用程序
实验完成:
已经在Android Studio中为Android安装了OpenCV。
通过生成apk来测试设备上的示例应用程序。
使用DLL为基于Windows的应用程序统一测试插件概念。 Dll概念适用于Unity。
最终实验 -
4。使用build \ intermediates \ explosion-aar ...中生成的classes.jar作为Unity中的插件。 它从unity构建生成一个apk。 apk安装在设备上但无法打开。(无法在应用程序菜单中看到它)
根据以下链接中的答案使用此.jar方法 How to export library to Jar in Android Studio?
问题:
查询:
我发现了可以包含在gradle脚本中的jar任务。 但我不确定如何使用它?在Android工作室中创建jar任务似乎有很多版本。如何在android中使用opencv实现项目?
我也很困惑.jar或.aar会解决我的目的吗?
我应该尝试像android库这样的其他方法来实现android,Opencv和Unity集成。
我对解决方案的看法:
在Android Studio中生成相应的jar将解决问题。
否则回去在eclipse中开发android的opencv
有用的链接
Can Android Studio be used to create Unity-plugin compatible JARs out of Library projects?
以下项目方法几乎与我想要实现的方法相同 https://github.com/thorikawa/unity-opencv-android
对此有任何帮助将不胜感激。
更新 2015年2月24日
借助此链接 Can Android Studio be used to create Unity-plugin compatible JARs out of Library projects?
我能够整合Unity和Android。
android studio项目现在包含两个类,一个活动类和一个包含各种getter函数的普通java类。
我可以从unity调用普通java类的任何函数。
但无法从统一开始活动课程。
我的想法
我认为Unity在统一安装android时会生成自己的清单文件。
相应地更改android studio清单文件可能会解决问题。
查询
如何从Unity中启动android库中的活动?
android studio如何生成单独提供的清单文件,以便Unity将其与自己生成的清单合并而不会产生任何冲突?
尝试的事情
在统一构建时,如果没有提供android studio生成的清单文件,则应用程序正常运行并与具有getter函数的简单java类通信。可以在Unity中获取值。
如果默认清单文件与classes.jar一起提供,则应用程序已安装但在打开时崩溃。甚至应用程序名称也更改为android studio清单文件提供的名称。
如果有人能帮助我,我将不胜感激。此外,我想如果我解决这个步骤,整合opencv for android将不会非常艰难。
祝你好运, Swaroop
答案 0 :(得分:0)
首先,你不能使用.aar文件,除非你有Unity5(我没有,但我读到了添加了aar支持)。为了创建jar,我使用same approach that use posted here,它对我有用。
如果您有Unity5,如果您的项目设置为Android库,它将在构建时输出.aar。它将显示在模块目录的build/outputs/aar/
目录中。您需要将这些文件复制到Assets/Plugins/Android
文件夹
如果您想在Unity中打开一个活动,因为您在.jar中添加了活动需要在清单中声明它。如果您已经为项目使用自定义清单,只需将其添加到应用程序标记内。
否则,您需要为项目创建自定义清单。首先,您需要复制Unity在编译游戏时生成的Android Manifest,它位于文件夹:
YourProjectname/Temp/StagingArea/AndroidManifest.xml
将其从那里复制到Unity内的Assets/Plugins/Android
文件夹,并添加您的库活动:
<activity android:name="yourLibraryPackagename.YourActivity"</activity>
进入应用程序标记内的清单,您应该能够打开您的活动。