2

状況は次のとおりです。他のアプリで再配布するためのネイティブ ライブラリを作成しました。ARMv7 NEON を使用しているため、ライブラリの 2 つのバージョンを出荷しています。1 つはほとんどのデバイス用で、もう 1 つは ARMv5/ARMv6 用の機能が制限されたバージョンです。これまでのところ非常に良好で、これはうまく機能しています。

ただし、何らかの理由で、Android 4.0.3 を搭載した Nexus S で実行されている新しく作成されたアプリが、ライブラリの間違ったバージョン (armeabi-v7a ではなく armeabi) を取得しています。

デバイスのファイルシステムを掘り下げると、/data/app/my_app.apk に正しいバージョンのライブラリが含まれていることがわかります。しかし、Android がそれを /data/data/my_app に展開すると、/data/data/my_app/lib/my_lib.so が armeabi のバージョンであることがわかります。しかし、奇妙なことに、 /data/data/my_other_app/lib/my_lib.so が正しい armeabi-v7a バージョンです。

質問は次のとおりです。1)WTF ?? 2) Android はどの eabi を APK から抽出するかをどのように決定しますか?

4

1 に答える 1

2

はい、これは ICS の既知のバグです。間違ったライブラリを選択します。

ここでそれについて読んでください:

于 2012-04-07T02:43:09.360 に答える