AR之道

AR Foudation功能记录(三) ------ 与Vufo

2019-07-18  本文已影响14人  千喜Ya

之前APP里面一直使用的是vuforia,最近Boss想做一个演示项目(用平面识别),我跟他说清楚了Android的机型限制之后呢,老板说不支持ARCore的设备直接放置屏幕中央,因此踏上了AF与Vuforia混合打包的踩坑之路,其实呢,如果不是我之前项目有自己用Androidstudio打包的AAR包应该是不会有问题的,这里只是想我这种情况的可能会踩到这种坑

一.配置环境

Unity版本 : 2018.4.3f1
SDK版本 :



Xcode版本 :


二.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
不知道新版是否修复

上一篇 下一篇

猜你喜欢

热点阅读