1

ライブラリをRubymotionプロジェクトに追加しようとしていますが、エラーは表示されませんが、ライブラリ内のクラスにアクセスできないようです。私のrakefileでは...

app.vendor_project('vendor/iSpeechSDK', :static,
    :products => ["libiSpeechSDK.a"],
    :headers_dir => "Headers")

app.frameworks += ['iSpeechSDK']

ヘッダーディレクトリ内の.aファイルと.hファイルはすべて存在します

私のapp_delegateにはこのコードがあります...

@sdk = iSpeechSDK.sharedSDK

しかし、エラーが発生します...

Simulate ./build/iPhoneSimulator-5.0-Development/Mirror Mirror.app(main)> 2012-07-19 10:50:05.978 Mirror Mirror [26195:11903] app_delegate.rb:13:in application:didFinishLaunchingWithOptions:': undefined local variable or methodiSpeechSDK'for#(NameError) 2012-07-19 10:50:05.980ミラーミラー[26195:11903] *キャッチされない例外'NameError'が原因でアプリを終了します。理由:' app_delegate.rb:13:in application:didFinishLaunchingWithOptions:': undefined local variable or methodiSpeechSDK' for#(NameError)'*最初のスロー呼び出しスタック:(0xa88052 0x417d0a 0x207954 0x5c285 0x5bce1)

4

1 に答える 1

4

GoogleグループのLaurentからの回答

問題は、iSpeechSDKクラス名が小文字で始まることです。これは、Rubyでは有効な定数名ではありません。

次のリリースでは、ISpeechSDK.sharedSDKを実行できるようになります(小文字で始まる定数または列挙にアクセスするためにすでに実行できるため)が、現時点では、回避策は次のようになります。

NSClassFromString('iSpeechSDK').sharedSDK

また、.bundleファイルをresourcesフォルダーにコピーしますか?ビルドシステムは自動的にそれを行いません(アプリを.aライブラリにリンクするだけです)

于 2012-07-19T12:55:47.883 に答える