問題タブ [il2cpp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - IL2CPP 経由の Unity3d ネイティブ API は実行可能ですか?
Unity3d のネイティブ API にアクセスし、おそらく人間が簡単に使用できるラッパー ライブラリを作成するというアイデアを熟考しています。そのために、私は現在、IL2CPP フラグをオンにしてビルド中に Unity プロジェクトが XCode プロジェクトに変換されたときに正確に何が起こるかを理解しようとしています。
IL2CPP が IL を C++ に変換する正確なプロセスを知りたいのですが、なぜプロジェクトにはまだ DLL が含まれているのでしょうか。
記載されている目標 (Unity3d C++ API) の実現可能性に関する洞察や意見を歓迎します。
PS: そのような API は控えめに言ってもハックであることは理解しています。もちろん、Unity3d 以外にも、C++ を一流の市民として使用できるテクノロジ、つまり Unreal Engine があることは理解しています。この質問は、何よりもまず本質的に理論的なものです。それ、そして私もC ++が好きです:)
xcode - Unity3d IL2CPP で管理されている dll の削除を防ぐ方法
拡張 ASCII サポートに の 1252 エンコーディングを使用System.Text.Encoding
して、1 バイトの 8 番目のビットを完全に利用していScripting Backend
ますAssets/link.xml
。
ただし、IL2CPP に切り替えると、ビルド中に関数の一部が取り除かれたため、クラッシュが発生します。Stripping Level
Unityのプレーヤー設定で無効にしていますが..
これが私のランタイムクラッシュログです:
IL2CPP クラッシュ:
preserve
link.xmlのステートメントを削除すると、Mono と同じになります。
問題のあるコードの使用方法は次のとおりです。
事前にどうもありがとうございました!
ios - Unity 5 il2cpp ios シミュレーターのサポート
unity5 の IL2CPP サポート IOS シミュレーターは現在ビルドされていますか? Unity でエクスポートされたプロジェクトを xcode でビルドできましたが、シミュレーター モードで実行すると、dyld: Symbol not found: _CloseZStream というメッセージが表示されてクラッシュしました。
c# - ExecutionEngineException - parse.com SDK を使用した iOS ランタイムでのエラー
Unity3d (バージョン 5.0.1p1) を使用して iOS および android 用のゲームを作成しています。Parse.com データ サービスを使用しているので、リモート プッシュ通知を実装するために当然それを使用しました。
問題は、ゲームをビルドしてテスト デバイス (iPhone 4s iOS8.1.2) で実行した後、ゲームの開始時に実行エンジンの例外が発生することです。例外は次のとおりです。
この問題は、新しい Unity Parse SDK 1.5 (PNS 機能を含む) で発生しました。私たちが知っていることは、空のプロジェクトを parse sdk だけで実行するとうまくいき、通知が正常に機能するということですが、実際のプロジェクトでは、例外のため、デバイスは解析で通知に登録されません。 parse と私たちが使用している他のツールの 1 つとの間の競合のようなものです。
参考までに: ユニバーサル アーキテクチャ用に IL2CPP を使用してゲームを構築しています (.Net 2.0 サブセットでも構築していますが、これが問題と関係があるとは思いません)。
お時間をいただき、ご回答いただきありがとうございます。
アップデート ::
今回は Mono(2.x) を使用してビルドしようとしましたが、ほぼ同じ例外が発生し、次のようになりました。
ExecutionEngineException: メソッドを JIT コンパイルしようとしています
'System.Reflection.MonoProperty:StaticGetterAdapterFrame
(System.Reflection.MonoProperty/StaticGetter`1,object)' aotonly で実行中。
System.Reflection.MonoProperty.GetValue (System.Object obj、System.Object[] インデックス) で
[0x00000] in :0
Parse.ParseInstallation.get_Badge () [0x00000] で:0
Parse.ParseInstallation.SetPlatformAutomaticValue () [0x00000] で
不明>:0
Parse.ParseInstallation.SetAutomaticValues () [0x00000] で:0
Parse.ParseInstallation.SaveAsync で (System.Threading.Tasks.Task toAwait、
CancellationToken cancelToken) [0x00000] in :0
Parse.ParseObject+<>c__DisplayClass18.b__17 で
(System.Threading.Tasks.Task toAwait) [0x00000] in :0
Parse.Internal.TaskQueue.Enqueue[Task] で (System.Func`2 taskStart、CancellationToken
cancelToken) [0x00000] in :0
Parse.ParseObject.SaveAsync (CancellationToken cancelToken) [0x00000] で
:0
Parse.ParseObject.SaveAsync () [0x00000] で:0
Parse.ParseInitializeBehaviour.b__0 (System.Byte[] deviceToken) [0x00000] で
:0
Parse.PlatformHooks+<>c__DisplayClass24.b__22 () で
[0x00000] in :0
Parse.PlatformHooks+d__44.MoveNext () [0x00000] で
不明>:0
UnityEngine.Debug:Internal_LogException(例外、オブジェクト)
UnityEngine.Debug:LogException(例外)
Parse.d__44:MoveNext()
問題についての詳細が得られることを願っています。
更新 2 ::
例外が発生する原因は正確にわかっていますが、残念ながらそれを制御することはできません。通知を登録するときは、次のようにします。
UPDATE 15/06/2015 : Parse Unity SDK 1.5.1 (il2cpp スクリプティング バックエンド)
解析 PN に登録しようとすると、同じエラーが引き続き発生します。
ExecutionEngineException: 事前 (AOT) コードが生成されていないメソッド 'System.Reflection.MonoProperty::StaticGetterAdapterFrame' を呼び出そうとしています。System.Reflection.MonoProperty+GetterAdapter.Invoke (System.Object _this) System.Reflection.MonoProperty+GetterAdapter.Invoke (System.Object _this) CurvedText.OnRectTransformDimensionsChange () System.Reflection.MonoProperty.GetValue (System.Object obj, System. Object[] index) Newtonsoft.Json.Bson.BsonString.set_IncludeLength (ブール値) Parse.ParseInstallation.get_Badge () Parse.ParseInstallation.SetPlatformAutomaticValue () Parse.ParseInstallation.SetAutomaticValues () Parse.ParseInstallation.SaveAsync (System.Threading.Tasks .Task toAwait, CancellationToken cancelToken) Parse.PlatformHooks+<>c__DisplayClass42.b__36 (System.
2 taskStart, CancellationToken cancellationToken) Parse.ParseObject.SaveAsync (CancellationToken cancellationToken) Parse.ParseObject.SaveAsync () Parse.ParseInitializeBehaviour.b__0 (System.Byte[] deviceToken) FlurryAnalyticsIOS.SetSessionTimeout (Int32 seconds) Newtonsoft.Json.Bson.BsonString.set_IncludeLength (Boolean value) Parse.PlatformHooks+<>c__DisplayClass24.b__22 () System.Action.Invoke () Newtonsoft.Json.Bson.BsonString.set_IncludeLength (Boolean value) Parse.PlatformHooks+d__44.MoveNext () System.Array+InternalEnumerator
1[System.UInt64].get_Current () UnityEngine.Debug:LogException(Exception) Parse.d__44:MoveNext() System.InternalEnumerator`1:get_Current()
json - IL2CPP を使用した JsonFx
コンストラクターが IL2CPP で動作していません。取得したログは次のとおりです。
MissingMethodException: メソッドが見つかりません: '既定のコンストラクターが見つかりません...System.ComponentModel.ByteConverter の ctor()'. System.ArgumentNullException..ctor (System.String paramName) [0x00000] で:0 で System.Activator.CreateInstance (System.Type タイプ、ブール値の nonPublic) [0x00000] で:0 で System.Activator.CreateInstance (System.Type type) [0x00000] in :0 at System.ComponentModel.TypeDescriptor.GetConverter (System.Type type) [0x00000] in :0 at JsonFx.Json.TypeCoercionUtility.CoerceType (System.Type targetType, System.Object value) [0x00000] in :0 at JsonFx.Json.JsonReader.ReadNumber (System.Type expectedType) [0x00000] in :0 at JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] in :0
JsonFx.Json.JsonReader.ReadArray (System.Type arrayType) [0x00000] で:0 JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] で:0
JsonFx.Json.JsonReader で。 ReadObject (System.Type objectType) [0x00000] in :0 at JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] in :0 at JsonFx.Json.JsonReader.ReadObject (System.Type objectType) [0x00000] in :0 at JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] in :0 at JsonFx.Json.JsonReader.ReadObject (System.Type objectType) [0x00000] in :0 at JsonFx.Json.JsonReader.Read (System.Type expectedType、ブール型 typeIsHint) [0x00000] in :0
JsonFx.Json.JsonReader.ReadObject (System.Type objectType) [0x00000] で:0 JsonFx.Json.JsonReader.Read (System.Type expectedType, Boolean typeIsHint) [0x00000] で:0 JsonFx.Json.JsonReader で。 Deserialize (Int32 開始、System.Type 型) [0x00000] in :0 at JsonFx.Json.JsonReader.Deserialize (System.String 値、Int32 開始、System.Type 型) [0x00000] in :0 at JsonFx.Json.JsonReader .Deserialize[BGS] (System.String 値) [0x00000] in :0 at GameData.ParseJson () [0x00000] in :0 at GameData.loaddata () [0x00000] in :0 at mainmenuUI.Start () [0x00000] in :0 at System.Array+InternalEnumerator1[System.Collections.Hashtable+Slot].get_Current () [0x00000] in <filename unknown>:0 System.InternalEnumerator
1:get_Current()
ios - com.apple.IOAccelerator.BlockFences での Unity iOS 64 ビット ビルドのクラッシュ、例外サブタイプ: KERN_INVALID_ADDRESS
私は Unity 4.6.6f2 を使用しており、Apple の 64 ビット要件をサポートするために il2cpp ビルドを作成しました。奇妙なランダム クラッシュが発生しており、デバイス クラッシュ ログにこれらのクラッシュ レポートが表示されます。これは複数のデバイスで発生しており、それらすべてに共通点があります。ログは次のとおりです。
xcode - iOS 用の Unity プロジェクトのビルド中に解析関連のエラーが発生しました (カルチャ名ニュートラルはサポートされていません)
iOS 向けのゲームをビルドしようとして 1 週間経ちましたが、助けを求めることにしました。Android と Windows Phone で動作しています。
詳細: バージョン: Unity 5.1.1p2
スクリプトのデバッグをオンにして、Unity から開発ビルドをビルドしています。
スクリプティング バックエンド: IL2Cpp
アーキテクチャ: Universal
SDK バージョン: Simulator SDK
Xcode:
Xcode バージョン 6.3.2
iOS デプロイメント ターゲット 7.1
iPhone シミュレーター SDK 8.3
解析バージョン: 1.5.2
アプリケーションは正常にビルドされます。しかし、シミュレーターで実行を開始すると、Il2CppExceptionWrapper で中断します。
スタックから、これが ParseInitializeBehavior 中に壊れていることがわかります。外側から内側へのスタック トレースに表示される内容は次のとおりです。
- ParseInitializeBehavior_Awake
- ParseInitializeBehavior_Initialize
- パースクライアント
- ParseClient_get_Version()
- ParseName --- この関数では、___assemblyName の値は次のとおりです: Parse.Unity、Version=1.5.2.0、Culture=neutral、PublicKeyToken=null
- CultureInfo_CreateCulture (名前 = "中立")
- CultureInfo_ctor
- CultureInfo_ConstructInternalLocaleFromName
「カルチャ名ニュートラルはサポートされていません」を発生させます