2017-10-28 1 views
0

NNAPIのデモを書きました。しかし、アプリケーションは "java.lang.UnsatisfiedLinkError:dlopen failed:" ANeuralNetworksModel_identifyInputsAndOutputs 'というシンボルを見つけることができないというエラーでクラッシュします。私が削除した行には、ANeuralNetworksModel_identifyInputsAndOutputs(ANeuralNetworksModel_addOperationなどのNNAPIに関する他の行が残っています)が含まれているため、アプリケーションはもはやクラッシュしません。Android 8.1のNNAPIでANeuralNetworksModel_identifyInputsAndOutputsのUnsatisfiedLinkErrorが発生しました。

マイminSdkVersionが、compileSdkVersion、targetSdkVersionは27

が、それはバグ、またはちょうど私のせいです、すべてのですか?手伝っていただけませんか?前もって感謝します。


次のような優れたソリューションのおかげで、私はNNAPIラッパーライブラリとデモを書かれた、とGitHubでそれを公開し、唯一の4行は、電話でモデルを展開するために必要とされてきました。私のプロジェクトがNNAPIに関心のある開発者に役立つことを願っています。

答えて

3

残念ながら、NDKの立ち上げの直前に要求されたNN APIに変更があったため、O MR1 Beta 1に変更されませんでした。つまり、NDKはベータ版よりも最新のものです。これは、次のOベータ(またはリリース?私は実際にタイムラインが何であるかわからない)が起動したときに解決します。

一方、ベータ版の関数名はANeuralNetworksModel_setInputsAndOutputsです。次のようなものがうまくいくはずです。回避策を取り除くことができるときにお知らせします(注:ベータ版を実行しているデバイスがないため、これをテストしていないため、少し修正が必要な場合があります)。

// TODO: Remove when O MR1 Beta 2 is available. 
__attribute__((weak)) 
extern "C" int ANeuralNetworksModel_setInputsAndOutputs(
    uint32_t inputCount, const uint32_t* inputs, uint32_t outputCount, 
    const uint32_t* outputs); 

extern "C" int ANeuralNetworksModel_identifyInputsAndOutputs(
    uint32_t inputCount, const uint32_t* inputs, uint32_t outputCount, 
    const uint32_t* outputs) { 
    if (ANeuralNetworksModel_setInputsAndOutputs == nullptr) { 
    __android_log_print(ANDROID_LOG_ERROR, 
     "ANeuralNetworkdModel_setInputsAndOutputs not found. Remove workarounds."); 
    abort(); 
    } 
    return ANeuralNetworksModel_setInputsAndOutputs(
    inputCount, inputs, outputCount, outputs); 
} 
0

この問題は、SDKパッケージが正しくないために発生しています。 SDKパッケージを最新のものに更新します。 SDKマネージャにアップデートが表示されない場合は、Android Studioのファイルメニューで[キャッシュを無効にして再起動する]オプションを選択します。 これが完了すると、Androidスタジオは保留中のSDKアップデートがあるかどうかを尋ねます。 アップデートがインストールされたら、仮想デバイスを使用している場合は、AVDマネージャを使用して新しい仮想デバイスを再作成します。 そして、あなたのプログラムは...

SDK \システム・イメージの\ androidの-27 \ google_apis \ X86 \ source.properties

Pkg.Desc=System Image x86 with Google APIs. 
    ****Pkg.Revision=2**** 
    Pkg.Dependencies=emulator#26.1.3 
    ****AndroidVersion.ApiLevel=27**** 
    SystemImage.Abi=x86 
    SystemImage.TagId=google_apis 
    SystemImage.TagDisplay=Google APIs 
    SystemImage.GpuSupport=true 
    Addon.VendorId=google 
    Addon.VendorDisplay=Google Inc. 
行く準備ができて
関連する問題