2010-09-05 5 views
0

J'ai un problème lors de la compilation de JNI. Il renvoie le message d'erreur indiquant que "arm-eabi/bin/ld: ne peut pas trouver -landroid_runtime". Je pense que libandroid_runtime.so est la propre bibliothèque de android. Pourquoi ld ne peut pas trouver le lib. Quelqu'un peut-il m'aider? Mon développer l'environnement comme suit: OS: Ubuntu 9.10 SDK: Android2.2 NDK: R4bandroid ndk: impossible de trouver android_runtime

+0

Quelle est la configuration et la configuration de votre projet ndk, telles que Android.mk? Pouvez-vous construire l'échantillon hello-jni? – qrtt1

Répondre

1

libandroid_runtime.so est en fait l'une des bibliothèques du système Android, et en tant que tels ne sont pas disponibles pour les applications NDK.

Consultez le fichier docs/STABLE-APIS.txt pour une liste des bibliothèques supportées, ou mieux, vérifiez le dossier build/platforms/android - #/arch-arm/usr/lib où # est le niveau de la plate-forme Android , pour la liste définitive des bibliothèques que vous pouvez lier. Comme ils disent sur les listes NDK, même si vous parvenez à lier avec l'une des autres bibliothèques Android, il est probable que ne fonctionnera pas sur certains (voire même la plupart) téléphones, même si cela fonctionne sur le celui que vous testez.

+0

merci! J'avais résolu le problème, libandroid_runtime.so peut être trouvé dans AVD/system/lib –

+1

Non, vous n'avez pas résolu le problème. Vous avez reporté le problème. Lorsque vous utilisez un en-tête ou une bibliothèque qui n'est pas fourni avec le NDK, vous dépendez des fonctionnalités qui peuvent changer dans les futures versions d'Android. Cela signifie que votre application se cassera probablement un jour sans avertissement. S'il vous plaît, ne faites pas cela pour vous. –

1

Pour résoudre votre problème construire une émulation de chaque android possible et recompiler une version pour chaque android et le mettre sur le marché avec une compatibilité spécifique.

EDIT: Essayez d'utiliser: adb pull/system/lib
EDIT 2: Il doit également y avoir un dossier egl dans/lib afin que vous sachiez le rechercher.