Unity Android il2cpp 编译报错解决

问题

在Unity中将Playersetting下的Scripting Backend的Mono切换成IL2CPP,然后导出Anbdroid工程出现一长串报错提示。

Failed running C:\Program Files\Unity\Editor\Data\il2cpp/build/il2cpp.exe --convert-to-cpp --emit-null-checks --enable-array-bounds-check --dotnetprofile="unityaot" --compile-cpp --libil2cpp-static --platform="Android"

这句提示仔细看可以看到有提示C#中的方法未定义(undefined reference to ‘CallSDK’)

D:\ZombieSvn\bbsqs\Program\ZombiePorject\Temp\StagingArea\Il2Cpp\il2cppOutput/Bulk_Assembly-CSharp_5.cpp:32454: error: undefined reference to 'CallSDK'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocati

提示这个CallSDK未被定义,而在C#中我是由定义这个方法的,CallSDK是导出到外部的一个C接口函数,在XCode中实现的一个函数

 [DllImport("__Internal")]
    public static extern void CallSDK(string type, string message);

原因

其实是因为初步转il2cpp,iOSSDK的一些方法在Android平台没有,所以这个导出到外部的函数宏修饰一下

 #if UNITY_IOS && !UNITY_EDITOR
    [DllImport("__Internal")]
    public static extern void CallSDK(string type, string message);
#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值