1

プレイブックがスタンバイモードのときにアプリでサウンドを実行できるようにしたいので、このステートメントを起動時に入れます

QNXSystem.system.inactivePowerMode = QNXSystemPowerMode.THROTTLED;

シミュレーター(デスクトップデバッガーではない)でアプリをデバッグすると、このエラーが発生しました

VerifyError: Error #1079: Native methods are not allowed in loaded code.

そして、AlertDialogを使用したときにもこのエラーが発生しました。

注: 私は Flash ビルダーを使用しており、ライブラリ パスに qnx SWC を配置しました。....では、これらの問題を解決するには?

4

2 に答える 2

1

ネイティブ拡張を使用してコンパイルされたコードをシミュレーターで実行できるようにするには、ネイティブ拡張を使用するコードを (シミュレーター上で) 決して実行されないメソッドに配置する必要がありました。

問題のあるコードを if/else ブロックでラップするだけでは十分ではありませんでした。if/else は、コードのネイティブ バージョンまたはシミュレータ バージョンのいずれかを持つ別のメソッドを呼び出す必要があります。

例えば:

private function showNativeOrFlexAlert(message:String):void
{
    // we used the Capabilities class to determine this, might be a better way
    if (isMobile)
        showNativeAlert(message);
    else
        showFlexAlert(message);
}

// have to be careful here, this method signature CANNOT include
// any classes from native extension -- no errors on device, but fails on simulator
private function showNativeAlert(message:String):void
{
    // use native API to show alert
}
private function showFlexAlert(message:String):void
{
    // use the Flex Alert class
}
于 2012-04-21T19:14:14.537 に答える
1

qnx-air.swc リンケージを「外部」に設定します。

于 2012-04-22T19:31:44.257 に答える