Utilisation de cURL dans Android

je voudrais utiliser bibliothèque cURL dans mon application android en code natif (en utilisant NDK r5b, le dernier). Après des recherches en ligne, il semble que la seule façon d'utiliser cURL dans android est de construire l'arbre des sources android entier avec curl en elle, et d'une certaine façon, cela génère un fichier de configuration nécessaire pour cURL de travailler sur Android. Je n'ai aucune expérience de la construction des sources android à partir de zéro et je me demandais s'il y a un moyen d'utiliser la bibliothèque cURL dans Android sans avoir à reconstruire android à partir de la source. Idéalement, être capable d'utiliser simplement cURL comme une bibliothèque statique ou partagée serait parfait. J'ai essayé de suivre les étapes indiquées ici...

http://curl.haxx.se/mail/lib-2009-12/0071.html

mais finissent par avoir des erreurs dans les curlrules des fichiers.h comme CURL_SIZEOF_LONG definition is missing!

je suppose que ces erreurs sont dues au fait de ne pas avoir ce fichier de configuration que j'ai mentionné mais les étapes dans le lien ci-dessus ne mentionnaient rien de tout cela et ont rapporté le succès. Des idées?

24
demandé sur Nitrex88 2011-02-10 03:34:28
la source

7 ответов

je suis sur une quête similaire! Je travaille sur une application en ce moment qui nécessite cURL et juste ce soir dans ma recherche je suis tombé sur votre poste ici, et ce que je crois être la réponse:

http://thesoftwarerogue.blogspot.com/2010/05/porting-of-libcurl-to-android-os-using.html

Contrairement au lien que vous l'avez mentionné, il y a plusieurs commentaires d'autres personnes qui prétendent avoir du succès aussi en suivant les instructions. Si vous parvenez à le compiler avant moi, et ça ne me dérangerait pas de m'envoyer la bibliothèque, postez un suivi ici! (Je suis assez nouveau pour empiler débordement donc je ne sais pas si vous pouvez pm. Espérons que ça marche pour nous deux!

18
répondu 2011-02-24 15:36:08
la source

Il semble qu'il y a des projets sur github qui automatisé tant d'openssl et de libcurl pour NDK construire:

https://github.com/jahrome/curl-android

https://github.com/guardianproject/openssl-android

je vais utiliser ceux de ma propre application, de sorte que je puisse avoir une bibliothèque unique pour traiter la communication d'arrière-plan pour iOS et Android...

13
répondu p_l 2011-06-26 18:08:58
la source

après avoir vérifié tous les post possibles à ce sujet, j'ai finalement obtenu une bonne compilation en utilisant une machine Linux x64 et la version 7.37.0 de Curl à path ${android-ndk-r10}.

Peut-être ce qui suit peut vous aider:

${android-ndk-r10}/build/tools/make-standalone-toolchain.sh --platform=android-15 --arch=armv7-a --toolchain=arm-linux-androideabi-4.8 --install-dir=./tmp/android-15

2

export CC="${android-ndk-r10}/external/curl/tmp/android-15/bin/arm-linux-androideabi-gcc"

3

./configure --host=arm-linux --enable-cross-compile --enable-threaded-resolver --disable-shared --disable-ftp --disable-file --disable-ldap --disable-ldaps --disable-rtsp --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-imap --disable-smtp --disable-gopher --disable-manual --enable-proxy --enable-ipv6 --enable-cookies --enable-symbol-hiding --disable-versioned-symbols --disable-soname-bump --disable-sspi --disable-ntlm-wb --prefix=${android-ndk-r10}/external/curl/build/curl-7.37.0

make -j4

5

make install

Vous obtiendrez une version à ${android-ndk-r10}/externe/curl/build/curl-7.37.0.

Si vous êtes en utilisant une machine 64bits pour compiler, peut-être que 2 définitions sont mauvaises, et vous obtenez cette erreur:

error: size of array '__curl_rule_01__' is negative

Je résous la redéfinition des variables dans le fichier ${CurlbuildAndroid}/include/curl/curlbuild.h (C'est dangereux de faire ça, mais ça a marché!):

CURL_SIZEOF_LONG 4
CURL_TYPEOF_CURL_OFF_T 4
13
répondu vgonisanz 2015-04-17 11:19:51
la source

je followid ce lien. Et cela fonctionne pour moi. Je n'ai pas eu besoin de télécharger tout le dépôt android pour compiler libcurl

2
répondu MOHAMED 2015-01-05 16:29:35
la source

" CURL_SIZEOF_LONG definition is missing!"

il y a un moyen pour qu'il .

changez le curlbuild.h à la ligne numéro 162 ajoutez comme ceci, si vous êtes plate-forme arm32.

//----------------------------------------------add
#    define CURL_SIZEOF_LONG           4
#    define CURL_TYPEOF_CURL_OFF_T     long long
#    define CURL_FORMAT_CURL_OFF_T     "lld"
#    define CURL_FORMAT_CURL_OFF_TU    "llu"
#    define CURL_FORMAT_OFF_T          "%lld"
#    define CURL_SIZEOF_CURL_OFF_T     8
#    define CURL_SUFFIX_CURL_OFF_T     LL
#    define CURL_SUFFIX_CURL_OFF_TU    ULL
#  define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
#  define CURL_SIZEOF_CURL_SOCKLEN_T 4
//#define __SYMBIAN32__
1
répondu ZhangXuelian 2011-11-16 07:34:50
la source

Vous pouvez choisir de télécharger cURL pour android https://play.google.com/store/apps/details?id=io.github.faywong.curl

1
répondu faywong 2015-02-01 16:29:58
la source

j'ai eu une question similaire qui n'a pas répondu et a donc été automatiquement supprimé :(

quoi qu'il en soit j'ai utilisé avec succès curl sur android et j'ai téléchargé une version compilée pour aider les gens qui cherchent encore.

télécharger: libcurl_for_arm

j'avais aussi besoin d'un typecheck-gcc.h fichier que j'ai modifié et téléchargé ici aussi

télécharger: typecheck-gcc.h

1
répondu RJButler 2015-04-13 21:22:54
la source

Autres questions sur