IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

ANDROID NDK architecture du projet [NDK]


Sujet :

Android

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut ANDROID NDK architecture du projet
    Bonjour,

    J'ai un projet sous eclipse, il fonctionne parfaitement cependant j'aimerai le faire migré sur Android Studio car eclipse vous m'avez compris.

    Ce projet est composé une librairie codé en C.

    sous eclipse le projet avait cette architecture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    mon projet 
       -> src  dossier
       -> jni   dossier
            -> dossierDifferenteClass en c  contenant des .h et des .m
            -> Android.mk 
        -> libs 
              -> ameabi     dossier
                    -> lib.so
              -> android-support.jar
         -> src
    sous Android Studio mon projet à cette architecture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    src -> main 
                -> java     dossier
                -> jniLib    dossier
                       -> armeabi         dossier        je sais pas où le mettre dans un dossier lib standard Android studio ou il est au bonne endroit ? :aie:     
                               -> lib.so  
                        -> dossierDifferenteClass en c  contenant des .h et des .m
                        -> Android.mk
    mon gradle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.8.+'
        }
    }
    apply plugin: 'android'
     
    repositories {
        mavenCentral()
    }
     
    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.0"
     
        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 19
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                runProguard false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
     
        buildTypes.debug.jniDebugBuild true
     
        productFlavors {
            x86 {
                ndk {
                    abiFilter "x86"
                }
            }
            arm {
                ndk {
                    abiFilter "armeabi-v7a"
                }
            }
            mips {
                ndk {
                    abiFilter "mips"
                }
            }
        }
     
        tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
            pkgTask.jniFolders = [new File(buildDir, 'lib')]
        }
    }
     
    dependencies {
        compile 'com.android.support:support-v4:19.0.0'
        compile 'com.android.support:appcompat-v7:19.0.0'
    }
    J'ai regardé le tutoriel sur developpez.com ça semble être un projet simple donc aucune complication comme ici.

    Mon projet compile bien cependant au chargement de la librairie ça plante avec ce message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    java.lang.UnsatisfiedLinkError: Couldn't load maLib from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.ax.audio_record-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ax.audio_record-2, /vendor/lib, /system/lib]]]: findLibrary returned null
                at java.lang.Runtime.loadLibrary(Runtime.java:358)
                at java.lang.System.loadLibrary(System.java:526)
                at com.ax.audio_record.MaClass.<clinit>(MaClass.java:24)
    code qu'il exécute lorsque ça plante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.loadLibrary("maLib");
    rappel ce projet fonctionne parfaitement sur eclipse...

    Si vous aurez une solution je suis preneur

    merci d'avance

    Cordialement,

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    L'ensemble des utilisateurs de ce forum ont beaucoup de chance de ne jamais devoir custom une vue.

    Où implémenter des trucs qui sorte de l'ordinaire.

    J'aimerai temps être dans votre situation dans un monde utopique.

  3. #3
    Membre actif Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Points : 251
    Points
    251
    Par défaut
    Salut,

    Ce forum est en train de monter en qualité et en niveau avec la progression de chaque membre, et ça prend juste du temps, et toi tu sembles avoir un niveau largement supérieur à la moyenne ici

    Je vais peut être me faire engueuler par un admin mais j'ai trouvé un billet de blog très bien fait sur le sujet :
    http://ph0b.com/android-studio-gradl...k-integration/

    Je ne peux pas plus t'aider, je découvre tout juste gradle, Android Studio et tout le bignou qu'il y a autour

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Salut,

    Tu dois avoir un problème dans la configuration de ton projet, au niveau du Java Build Path qui doit être correct sous eclipse. Essaye de regarder si tes dépendance sont correcte.

    Je vais peut être me faire engueuler par un admin mais j'ai trouvé un billet de blog très bien fait sur le sujet :
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    Merci pour vos réponses.

    J'avais déjà regardé sur ce site mais moi j'ai un fichier .mk qui n'est pas présent dans leur projet où dans les exemples Gradle... Et du coup je sais pas trop où le mettre.

    Sur Android Studio il y a plus de Java Build Path où de façon aussi explicite.

  6. #6
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Sur Android Studio il y a plus de Java Build Path où de façon aussi explicite.
    Non mais tu as les dépendances sur tes modules, regarde si ceux là sont correct ^^.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    La configuration de mes modules se base par rapport à mon Gradle si tu vois un truc qui louche je prend

  8. #8
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Tu peux nous faire un screenshot des dépendance des modules ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dependencies {
        compile 'com.android.support:support-v4:19.0.0'
        compile 'com.android.support:appcompat-v7:19.0.0'
    }

    Mon module se base par rapport à ses dépendances.

    Aucune dépendance spécial par rapport à un projet classique la librairie support et la librairie appcompat

  10. #10
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    C'est pas ce que je voulais dire, je pensais plus a la fenetre Module, tiens en cherchant sur le net :
    https://gist.github.com/khernyo/4226923

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->
        pkgTask.jniFolders = new HashSet<File>()
        pkgTask.jniFolders.add(new File(buildDir, 'native-libs'))
    }
    Edit :

    Pour les versions > 0.7

    0.7.2

    Note: 0.7.2 requires Java7. This is a mistake. Use 0.7.3 instead.
    Fix issue with Proguard.
    Add packagingOptions support in Library projects.
    Solve issue with local jar when testing library projects.
    Fix bug with variant.addJavaSourceFoldersToModel
    Add jniLibs folder to source sets for prebuilt .so files.
    Lint fixes:
    fix RTL detector
    fix HTML report to have valid HTML
    New Samples: ndkJniLib, genFolderApi2
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2012
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 129
    Points : 144
    Points
    144
    Par défaut
    Merci à toi pour le temps que tu as passé.

    Le soucis venait que j'avais pas indiqué le nom de mon module dans Gradle du coup il le trouvait pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     defaultConfig {
            minSdkVersion 8
            targetSdkVersion 19
            versionCode 28
            versionName "3.0.2"
            ndk {
                moduleName "myModule"
            }
     
        }
    J'utilise Java 1.6 aucun soucis constaté.

    Par contre ne pas oublier d'indiquer la version de la librairie en c comment c'est encodé. armeabi etc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    productFlavors {
            arm {
                ndk {
                    abiFilter "armeabi"
                }
            }
        }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Android NDK (C++), Jeux et Inputs
    Par kremvax dans le forum Android
    Réponses: 2
    Dernier message: 30/12/2010, 14h14
  2. comment architecturer un projet JSF?
    Par glasgow dans le forum JSF
    Réponses: 3
    Dernier message: 01/04/2009, 21h01
  3. Architecture gros projet, forte charge ?
    Par sunshine33 dans le forum Débuter
    Réponses: 2
    Dernier message: 27/08/2008, 15h48
  4. Bonne architecture de projet
    Par Gregory.M dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 17/07/2008, 14h54
  5. [Maven2]architectures de projets EJB 3.0
    Par indoloic dans le forum Maven
    Réponses: 1
    Dernier message: 15/05/2007, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo