摘要:
黑屏的原因是对应的手机操作系统的库由于TortoiseSVN软件的全局过滤而未加入SVN库。
解决方法:
1.去除TortoiseSVN软件中对.so和.a的默认忽略设置。
2.把Vuforia的Android和iOS库拷贝至Unity工程中的对应目录。
详细过程:
每次使用Vuforia做一个新的demo时,常常发现前一两次使用都是正常的,之后不知道从什么时候开始PC上可以正常测试,但是导出成Android的apk安装在手机上时,程序就会起不来。
总是百思不得其解:我还明明把最开始成功的版本入了一个本地的SVN库,现在即使是倒回到第一个版本仍然发生类似的问题。怎么会呢?难道Vuforia本身存在不稳定的情况?
苦苦的在官方论坛上搜索,发现也有很多类似的问题,从15年左右就开始了,但是不论是官方还是民间都没有明确的解决方法。正在踌躇之际,突然一个灵感涌上心头:查一查对应的lib库!终于,在对应的Android库文件夹中,我发现了端倪:\Assets\Plugins\Android\libs\armeabi-v7a\中一个文件都没有,只有几个.meta文件!正常情况下,每个.meta文件应该对应着一个文件或文件夹,名称就是.meta文件前面的部分。我检查了这几个文件名,发现他们是:libVuforia.so、libVuforiaUnityPlayer.so、libVuforiaWrapper.so。我在新的VuforiaSDK的包中找到了这几个文件,拷贝进去,手机应用恢复正常!\Assets\Plugins\iOS\目录下也有类似的问题:libVuforia.a和libVuforiaUnityPlayer.a文件丢失。
可是平平常常几个文件,还入了SVN库,怎么会丢失了呢?我试着把这他们加入SVN库,点TortoiseSVN的Add,居然新增的这几个文件上没有出现小加号。原来,在第一次入SVN库的时候TortoiseSVN软件就没有把这几个文件加上!怪不得会丢。
这难道是TortoiseSVN软件的bug么?.so和.a可是常用的库文件啊,软件如果有这样的bug应该早就修复了吧。几经查证,最终发现TortoiseSVN默认全局忽略的文件中包含.so和.a文件,致使它们无法加入库中。解决方法:TortoiseSVN -> Settings,在默认忽略文件中去掉 *.so *.a 即可。
参考资料:
1.Vuforia论坛:Camera not working when app installed on mobile
2.关于SVN上传代码,.so文件.a文件自动被过滤的问题 |