AR Foudation功能记录(三) ------ 与Vufo
2019-07-18 本文已影响14人
千喜Ya
之前APP里面一直使用的是vuforia,最近Boss想做一个演示项目(用平面识别),我跟他说清楚了Android的机型限制之后呢,老板说不支持ARCore的设备直接放置屏幕中央,因此踏上了AF与Vuforia混合打包的踩坑之路,其实呢,如果不是我之前项目有自己用Androidstudio打包的AAR包应该是不会有问题的,这里只是想我这种情况的可能会踩到这种坑
一.配置环境
Unity版本 : 2018.4.3f1
SDK版本 :
![](https://img.haomeiwen.com/i17787668/af74bee95842537e.png)
Xcode版本 :
![](https://img.haomeiwen.com/i17787668/9b7af4d7fa942474.png)
二.Android大坑
如果你有自己用Androidstudio打AAR包进来,就有可能跟我遇上同一个错误,打包出来后运行会调用不了原生那边的函数,报错如下 :
AndroidJavaException: java.lang.NoSuchMethodError: no non-static method with name='JudgeSysBlueState' signature='()V' in class Ljava.lang.Object;
java.lang.NoSuchMethodError: no non-static method with name='JudgeSysBlueState' signature='()V' in class Ljava.lang.Object;
最后经大神提醒,需要合并Androidmanifest.xml,我项目的Androidmanifest.xml如下 :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ylcx.com.SpaceGo">
<application
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:resizeableActivity="true">
<meta-data android:name="android.max_aspect" android:value="2.1" />
<activity android:name=".MainActivity"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.app.lib_name" android:value="unity" />
<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />
</activity>
</application>
<uses-permission android:name="android.permission.RECORD_AUDIO" android:required="false">
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:required="false">
</uses-permission>
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.autofocus" android:required="false"/>
<uses-permission android:name="android.permission.INTERNET" android:required="false"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" android:required="false"/>
<uses-permission android:name="android.permission.FLASHLIGHT" android:required="false"/>
<uses-permission android:name="android.permission.BLUETOOTH" android:required="false"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:required="false"/>
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:required="false"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:required="false"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" android:required="false"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" android:required="false"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" android:required="false"/>
<uses-permission android:name="android.permission.WAKE_LOCK" android:required="false"/>
</manifest>
三.iOS大坑
iOS主要就是版本的坑,我用最新版本ARKit XR Plugin打包会报如下错误 :
dyld: Symbol not found: _OBJC_CLASS_$_ARMatteGenerator
Referenced from: /var/containers/Bundle/Application/5D012AA5-7920-42FB-A5BF-E0FB5AEC203D/SpaceGo.app/SpaceGo
Expected in: /System/Library/Frameworks/ARKit.framework/ARKit
in /var/containers/Bundle/Application/5D012AA5-7920-42FB-A5BF-E0FB5AEC203D/SpaceGo.app/SpaceGo
解决方法 :
降低ARKit XR Plugin版本至2.1
不知道新版是否修复