1

Monotouch で Jint を少し試してみたいのですが、Jint-Mono プロジェクト (monotouch バージョンではなく mono) が Mac で動作しますが、iPhone で動作させることができません。このクラスを作成しました:

namespace iPhoneTests
{
    public class JintObject
    {
        public JintObject ()
        {
        var jintEngine = new JintEngine();
        jintEngine.Run
                    (
                    @"Console.WriteLine('Hello World')"
                    );

        }
    }
}

JintObject メソッドを呼び出そうとすると、例外エラーが発生します。

Unhandled Exception: System.TypeLoadException: A type load exception has occurred.
  at Jint.Marshaller.WrapMethod (System.Reflection.MethodInfo info, Boolean passGlobal) [0x00000] in <filename unknown>:0 
  at Jint.Native.NativeMethod..ctor (System.Reflection.MethodInfo info, Jint.Native.JsObject prototype, IGlobal global) [0x00000] in <filename unknown>:0 
  at Jint.Native.NativeConstructor.ReflectOverload (ICollection`1 methods) [0x00000] in <filename unknown>:0

私は何を間違っていますか?

4

1 に答える 1

3

過去に MonoTouch で Jint と Jurassic を使用しようとしました。

私がいつも遭遇する問題は、これらのプロジェクトの両方が JavaScript を解釈するために Reflection.Emit を使用していることです。また、そのタイプの JIT 操作は電話ではサポートされていません。これがあなたが見ているものだと思います(コンソール出力を見てください?)

これに対して私が見つけた唯一の解決策は次のとおりです。

  • Jint の古いバージョンに戻ると、0.9 には Reflection.Emit が含まれていなかったと思います。
  • 管理されたライブラリを放棄し、代わりに ios javascriptcore ライブラリを使用しますが、これを使用するには多くのバインディングを記述する必要がありました
于 2012-03-19T11:19:31.443 に答える