Autore Topic: Integrare libreria NON jar in Android Studio (AndEngine)  (Letto 875 volte)

Offline Jybo14

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows 7
Integrare libreria NON jar in Android Studio (AndEngine)
« il: 31 Marzo 2014, 18:57:50 CEST »
0
Salve,
dopo essere "impazzito" per giorni e aver letto tutto lo scibile trovato al riguardo, sia in italiano che in inglese, ho pensato di rivolgere qui una domanda diretta per il mio problema.

PROBLEMA: io vorrei integrare nel mio progetto una libreria (in particolare delle estensioni di AndEngine) che non è in formato .jar, bensì sotto forma di progetto (quindi cartella con varie sottocartelle eccetera, come questa, per fare un esempio: https://github.com/RealMayo/AndEnginePhysicsBox2DExtension ).
Ora, al riguardo ho trovato molte e molte guide, per integrare una libreria in un progetto, (metti questa libreria in una cartella creata nel progetto, modifica il setting.gradle, eccetera), ma come fare se, come nel mio caso, la libreria da integrare non è un progetto con tecnologia gradle (e che quindi non ha niente al riguardo, come build.gradle, eccetera) ? (come quella del link sopra)
PSEUDO-SOLUZIONE: sono anche riuscito a reperire una versione .jar (e ad utilizzarla correttamente) simile alla libreria che mi serve, ma non è affatto completa, quindi vorrei imparare come fare ad integrare una libreria-progetto.

Ringrazio sentitamente chiunque riuscirà ad aiutarmi a fare un po' di luce in tutta questa oscurità :(
P.S. Forse la domanda è di natura banale e sicuramente alcuni termini non saranno corretti, ma abbiate pazienza, sono uno sviluppatore "androidiano" ancora alle prime armi :)
« Ultima modifica: 31 Marzo 2014, 19:10:10 CEST da Jybo14 »

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Integrare libreria NON jar in Android Studio (AndEngine)
« Risposta #1 il: 01 Aprile 2014, 12:05:23 CEST »
0
Hai già visto questo topic su stackoverflow ? How to import eclipse library project from github to android studio project? - Stack Overflow
In pratica il "trick" è quello di creare una un nuovo modulo come libreria android vuota, dandole il nome della libreria che vuoi importare ( nel tuo caso AndEnginePhysicsBox2DExtension  ) , cancellare il contenuto del src/main appena creato e copiare al suo interno i file della libreria che vuoi importare, compreso il manifest. Rimuovere il blocco delle dipendenze e delle release da gradle e poi fare il build del progetto. A questo punto puoi importare la tua libreria in un altro progetto.
Personalmente non l'ho provato. Se funziona scrivilo qui, magari può essere d'aiuto ad altri  ;-)

Offline Jybo14

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Sistema operativo:
    Windows 7
Re:Integrare libreria NON jar in Android Studio (AndEngine)
« Risposta #2 il: 01 Aprile 2014, 13:42:31 CEST »
0
Innanzitutto, grazie mille per la risposta.
Sinceramente non ricordo se ho visto o no questa pagina, ne ho lette talmente tante da StackOverflow in questi giorni da aver perso la cognizione :(
Però non mi pare di aver provato questo metodo, quindi appena torno a casa (ora sono all'università ma non riesco a testarlo) provo e poi riporto qui se è andato a buon fine o meno :)

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Integrare libreria NON jar in Android Studio (AndEngine)
« Risposta #3 il: 01 Aprile 2014, 15:48:31 CEST »
0
Per poter lavorare con gradle, si deve conoscere gradle.

Devi crearti una struttura come questa.
Codice (Java): [Seleziona]
root
  app
     build.gradle
  libreria
     build.gradle
  settings.gradle

In settings.gradle:
Codice (Java): [Seleziona]
include ':app', ':libreria'
In libreria, il file build.gradle lo scrivi tu.
Ora, al riguardo ho trovato molte e molte guide, per integrare una libreria in un progetto, (metti questa libreria in una cartella creata nel progetto, modifica il setting.gradle, eccetera), ma come fare se, come nel mio caso, la libreria da integrare non è un progetto con tecnologia gradle (e che quindi non ha niente al riguardo, come build.gradle, eccetera) ? (c

Gradle è solo un sistema di build. I progetti non sono mai dipendenti da gradle.
Qualcosa di simile a questo:

Codice (Java): [Seleziona]
apply plugin: 'android-library'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.3"

 sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['aidl']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
             jni.srcDirs = ['jni']
        }

    }

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
}

Infine nel app/build.gradle devi aggiungere:

Codice (Java): [Seleziona]
dependencies {
    compile project(':libreria')
}