开发者社区> 史迪奇abc> 正文

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


本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/6080075.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Data Migration 错误说明
本文介绍了 Data Migration (DM) 的错误系统,以及各种错误信息的详细含义。 DM 错误系统 DM 1.0.0-GA 版本中引入了新的错误系统。该系统: 增加了错误码机制。 增加了 class、scope、level 等错误信息。 优化了错误描述内容、错误调用链信息和调用堆栈信息。 错误系统的详细设计和实现,可参阅 RFC 文档: Proposal: Improve Error System。 错误信息示例 以下是 DM 实际输出的一条错误信息。本文根据这条信息,对各个字段作详细说明。 [code=38008:class=dm-master:scope=internal
58 0
解决:Could not write JSON: No serializer found for class *** and no properties错误
解决:Could not write JSON: No serializer found for class *** and no properties错误
27 0
【错误记录】Flutter 报错 Downloading the Dart SDK using the BITS service failed, retrying with WebRequest...
【错误记录】Flutter 报错 Downloading the Dart SDK using the BITS service failed, retrying with WebRequest...
109 0
PagerAdapter instantiateItem()方法position错误解决方案
异常信息:java.lang.IndexOutOfBoundsException: index=3 count=2   在instantiateItem各个条目View的时候。会有 container.addView(view, 0); 这样一行代码。
1093 0
mybatis 错误apped Statements collection does not contain value for
apped Statements collection does not contain value for后面是什么类什么方法之类的: 错误原因有几种: 1、mapper.xml中没有加入namespace 2、mapper.xml中的方法和接口mapper的方法不对应 3、mapper.xml没有加入到mybatis-config.xml中(即总的配置文件),例外:配置了mapper文
1432 0
+关注
304
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载