2012-01-01 6 views
1

と私はネイティブABIの不一致:NDK HelloJniサンプル

android-mips-ndk-r5b-windows 

と最新のSDKを使用しています、私は、Android 2.2 Cygwinをターゲットにしています1.79 例は罰金コンパイルされた - の両方のJavaとc部分。

私はEclipse内からそれを実行しようとすると、しかし、私はlogcatでこのエラーを得た:

12-31 18:28:41.523: D/PackageManager(73): Scanning package com.example.hellojni 
12-31 18:28:41.564: I/PackageManager(73): /data/app/com.example.hellojni-1.apk changed; unpacking 
12-31 18:28:41.582: W/PackageManager(73): Native ABI mismatch from package file 
12-31 18:28:41.593: W/PackageManager(73): Package couldn't be installed in /data/app/com.example.hellojni-1.apk 
12-31 18:28:41.753: D/dalvikvm(73): GC_EXPLICIT freed 3368 objects/192440 bytes in 149ms 
12-31 18:28:41.953: I/ActivityManager(73): Start proc com.android.quicksearchbox for broadcast com.android.quicksearchbox/.SearchWidgetProvider: pid=252 uid=10012 gids={3003} 
12-31 18:28:42.103: D/AndroidRuntime(122): Shutting down VM 
12-31 18:28:42.113: D/jdwp(122): adbd disconnected 
12-31 18:28:42.153: I/AndroidRuntime(122): NOTE: attach of thread 'Binder Thread #3' failed 
12-31 18:28:42.872: I/ActivityThread(252): Publishing provider com.android.quicksearchbox.google: com.android.quicksearchbox.google.GoogleSuggestionProvider 
12-31 18:28:43.084: I/ActivityManager(73): Start proc com.android.music for broadcast com.android.music/.MediaAppWidgetProvider: pid=262 uid=10022 gids={3003, 1015} 
12-31 18:28:44.583: D/dalvikvm(136): GC_EXTERNAL_ALLOC freed 3605 objects/199344 bytes in 119ms 
12-31 18:28:44.753: I/Launcher.Model(136): not binding apps: no Launcher activity 
12-31 18:28:44.933: D/dalvikvm(136): GC_EXPLICIT freed 1326 objects/66128 bytes in 177ms 
12-31 18:28:47.227: D/dalvikvm(136): GC_EXPLICIT freed 9960 objects/486072 bytes in 203ms 

答えて

1

ログファイルから:ネイティブABIの不一致パッケージファイルから

私はこの手段を考えますあなたはパッケージとプラットフォームのミスマッチです。

これについてGoogle検索を実行してください - 情報がたくさんあるようです。

+0

こんにちは、あなたの再生のためにありがとう。私は結果として多くの情報に私はそれをGoogle知っている。 MIPSとは何ですか?私がダウンロードしたNDKが間違っていて、私はGoogleのサイトからダウンロードしていませんでした。 – user63898

+0

MIPSはコンピュータのアーキテクチャです –

+0

上記のように:)ほとんどのAndroidデバイスは "ARM"です。ほとんどのPCは「x86」です。 Javaでは、これらの区別が透過的になります。 NDKは、それらについて心配する必要があることを意味します。あなたのログは、間違ったものをミックス/マッチングしていることを明確に示しています。 – paulsm4

0

NDKは特定のバージョンのarmeabiを参照しています。これは、オブジェクトファイルやCPUアーキテクチャの不一致のように聞こえます。

PS: x86(ほとんどの開発用PC)、ARM(ほとんどのアンドロイドデバイス)、MIPSは3つの全く異なるアーキテクチャです。私はあなたが誤ってミックス/マッチングしている可能性があると思います。