zoukankan      html  css  js  c++  java
  • IOS错误Could not produce class with ID

    运行环境

    Unity 5.3.5f1 (IL2CPP)编译IOS版本

    XCode Version 7.2.1 (7C1002)

    Mac OS X 10.11.3 (15D21) (Mac mini)

    iPhone 5,6 ,iPad

    错误信息

    Could not produce class with ID

    Could not produce class with ID XXX.
    This could be caused by a class being stripped from the build even though it is needed. Try disabling 'Strip Engine Code' in Player Settings.:<LoadWWWIEnumerator>c__Iterator99:MoveNext()

    具体表现:可能是APP闪退,提示上示错误信息

    解决办法

    1. 在上面的错误提示中,有提示 disabling “Strip Engine Code

    所以我们要做的就是在Player Setting – Other Setting,去掉勾选 Strip Engine

    image

    如果要Strip Engine

    如果要Strip Engine,那就需要把不想被strip的添加进来。

    1. 新建link.xml放在Assets目录下,里面添加不想被strip的dll的名字

    ID查询: https://docs.unity3d.com/Manual/ClassIDReference.html

    下面是导入高通Vuforia之后,SDK中默认的link.xml的内容

    <linker>
        <!-- The following assemblies contain namespaces that should be fully preserved
             even when assembly stripping is used. Not excluding the assemblies below from
             stripping can result in crashes or various exceptions. -->
        <assembly fullname="Vuforia.UnityExtensions">
            <namespace fullname="Vuforia" preserve="all"/>
        </assembly>
        <assembly fullname="System">
            <namespace fullname="System.Runtime.InteropServices" preserve="all"/>
            <namespace fullname="System.Collections.Generic;" preserve="all"/>
            <namespace fullname="System.Linq;" preserve="all"/>
            <namespace fullname="System.Text.RegularExpressions;" preserve="all"/>
            <namespace fullname="System.IO;" preserve="all"/>
            <namespace fullname="System;" preserve="all"/>
        </assembly>
    </linker>

    如果提示的ID的是Editor的,比如 AnimatorController(ID 91)属于Editor包里的,不能用link.xm加回来,可以在Resource下建一个空的prefab,在上面挂一个AnimatorController,打包时留下这个prefab就可以确保这个类不被strip掉了。

    参考:https://forum.unity3d.com/threads/could-not-produce-class-with-id-91-ios.267548/

    Unity的默认值

    以Unity5.3.5为例

    ios平台,默认勾选了 Strip Engine Code,且Script Background为I2CPP

    image

    android平台,默认disabled Strip Engine Code,且Script Background为Mono2x

    image

  • 相关阅读:
    【ZOJ2112】【整体二分+树状数组】带修改区间第k大
    【POJ2104】【整体二分+树状数组】区间第k大
    【清澄A1333】【整体二分+二维树状数组】矩阵乘法(梁盾)
    【BZOJ2752】【线段树】高速公路
    【POJ2886】【线段树】Who Gets the Most Candies?
    【POJ2482】【线段树】Stars in Your Window
    【HDU4348】【主席树】To the moon
    JDBC
    java异常
    JavaScript对象
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/6080075.html
Copyright © 2011-2022 走看看