2010-05-25 6 views
0

J'ai installé la dernière version de l'Android NDK (r4) sur Windows, ainsi qu'une nouvelle installation de cygwin avec les paquets requis, le dernier SDK Android, Eclipse + Android plugins.Android NDK continue de chercher "g/David/..."

Chaque fois que j'essaie de construire tout le code JNI de Cygwin (Que ce soit les échantillons du NDK, ou un custom project), je reçois:

$ make APP=demo 
Android NDK: Building for application 'demo' 
Compile thumb : demo_lib <= apps/demo/project/jni/demo.c 
cc1: error: /cygdrive/g/David/ndk/build/platforms/android-3/arch-arm/usr/local/i 
nclude: not a directory 
cc1: error: /cygdrive/g/David/ndk/build/platforms/android-3/arch-arm/usr/include 
: not a directory 
make: *** [out/apps/demo/armeabi/objs/dmeo_lib/demo.o] Error 1 

Mon nom n'est pas David, et je n'ont pas de lecteur G.

On dirait que ce chemin est en quelque sorte codé en dur dans cette version. J'ai essayé de chercher la chaîne g/David dans le répertoire NDK. Il apparaît dans la plupart des binaires, certains .info fichiers, comme un commentaire dans certains en-têtes, et dans deux fichiers mkheaders.conf:

<NDK>\build\prebuilt\windows\arm-eabi-4.2.1\lib\gcc\arm-eabi\4.2.1\install-tools\mkheaders.conf: 

SYSTEM_HEADER_DIR="/cygdrive/g/David/ndk/build/platforms/android-3/arch-arm/usr/include" 

et

<NDK>\build\prebuilt\windows\arm-eabi-4.4.0\lib\gcc\arm-eabi\4.4.0\install-tools\mkheaders.conf: 

SYSTEM_HEADER_DIR="/cygdrive/g/David/ndk/build/platforms/android-3/arch-arm${sysroot_headers_suffix}/usr/include" 

j'ai changé deux fichiers pour pointer vers le bon chemin, mais je reçois exactement la même erreur (avec le chemin d'origine).

J'ai une expérience limitée avec cygwin, unix ou make. Des idées?

Répondre

0

Ceci est probablement le symptôme d'une installation NDK incomplète/cassée. Les binaires gcc codent toujours en dur le répertoire sysroot d'origine dans leur exécutable, mais ceux-ci ne sont généralement pas trouvés si des en-têtes et des bibliothèques appropriés sont fournis. Et ils devraient.

Pouvez-vous essayer de re-télécharger et de décompresser le paquet NDK à partir du site officiel, et voir si cela résout le problème?

+0

Merci. J'ai essayé de télécharger à nouveau (à partir de la page Web officielle, comme avant), et je reçois toujours la même chose.J'ai essayé d'installer la version Linux sur une machine virtuelle Linux, et cela semble fonctionner. Cependant, cela constituerait un processus de construction très lourd. – uj2

0

J'ai eu le même problème. C'est parce que vous avez peut-être un lecteur G: pour DVDRom ou HDD (pour moi G: était le DVDROM). Problème résolu lorsque je désactive le lecteur G: ....

0

J'ai aussi un lecteur G: inactif dans Windows XP (une clé USB lui est assignée). Cela empêche certaines constructions avec NDK r4, et je ne pouvais pas comprendre pourquoi parfois l'erreur apparaît.

Quoi qu'il en soit, voici la solution:

  1. préparer le chemin cygdrive alternatif: mkdir c:\cygwin\ccc

  2. utilisation mount -c ccc de Cygwin pour changer le préfixe de chemin cygdrive

  3. créer des répertoires manquants:

mkdir -f /cygdrive/g/David/ndk/build/platforms/android-3/arch-arm/usr/local/include

mkdir -p /cygdrive/g/David/ndk/build/platforms/android-3/arch-arm/usr/include

Maintenant, vous pouvez exécuter android-ndk-r4\ndk-build