2015-10-28 20 views
5

Avevo il mio framework personalizzato (android.jar) e volevo usarlo all'interno di Android Studio. Avevo una descrizione nel mio build.gradle come:Utilizzare la libreria framework personalizzata (android.jar) in Android Studio

dependencies { 
    compile files('myandroid.jar') 
} 

Ma Android Studio utilizza ancora il framework predefinito (android.jar). La situazione attesa è come Eclipse, posso organizzare l'ordine delle librerie. In Android Studio, posso solo organizzare l'ordine delle librerie esterne e non avere nulla a che fare con la libreria di framework predefinita. C'è un modo per far sì che il mio android.jar personalizzato abbia un ordine superiore a quello predefinito?

Grazie mille!

+0

Questo problema non riguarda il mio modulo non può fare riferimento la mia android.jar personalizzato. Sembra causato sia dalla mia libreria di framework personalizzata che dalla libreria di framework predefinita (la libreria di Android SDK) con le stesse classi, ad esempio: android.telephony.ServiceState. E Android Studio utilizza solo la libreria di framework predefinita (libreria di Android SDK) che le mie nuove API aggiunte per android.telephony.ServiceState non vengono riconosciute ... – superx3

+0

Hai ricevuto la risposta? –

+0

No, non ho ancora ricevuto la risposta! Tuttavia, puoi provare a combinare il file android.jar predefinito con quello personalizzato. Decomprimi entrambi .jar, copia le classi mancanti da android.jar originale, zip indietro a .jar .... Puoi scrivere un semplice programma per farlo funzionare più facilmente .... – superx3

risposta

1

Quello che puoi fare è aggiungere il tuo .jar nella tua cartella libs, quindi fare clic destro su di esso e selezionare add as a library.

Quindi, se non funziona ancora, provare a fare clic destro sulla cartella del progetto e selezionare Open Modules settings. Puoi gestire la tua dipendenza e le tue librerie lì.

+0

Grazie mille per il tuo aiuto! Ma in Android Studio, non posso permettere che il mio android.jar abbia una priorità più alta di quella predefinita. Anche io apro la finestra "Modules Settings", il android.jar predefinito non è nella lista, e non posso ancora garantire che il mio android.jar personalizzato sia referenziato per primo .... – superx3

0

Prova questo, nel file build.gradle del tuo modulo.

dependencies { 
    compile files('libs/myandroid.jar') 
} 
+0

Grazie mille! Ma sembra che tu possa mettere la tua libreria in un'altra cartella purché il percorso del file sia corretto. Ed è l'ordine di riferimento delle biblioteche che mi infastidisce ... – superx3

1

Luogo questa linea all'interno le dipendenze:

provided files('libs/myandroid.jar') 

Se ancora non funziona, in modo che possiamo aggiungere la nostra biblioteca per costruire classpath. In build.gradle dell'applicazione, aggiungere questi:

allprojects { 
    repositories { 
     jcenter() 
    } 
    gradle.projectsEvaluated { 
     tasks.withType(JavaCompile) { 
      options.compilerArgs.add('-Xbootclasspath/p:app\\libs\\mylibs.jar') 
     } 
    } 
} 

Ho inserito mylib.jar in app/libs. Ci possono essere alcuni errori visualizzati su IDE, ma la compilazione dell'applicazione sarà OK.

+0

Grazie mille! Ma sembra che tu possa mettere la tua libreria in un'altra cartella purché il percorso del file sia corretto. Ed è l'ORDINE di riferimento delle biblioteche che mi infastidisce ... Voglio che le mie lezioni personalizzate sostituiscano quella già esistente in Android. In tal caso, devo garantire il mio framework personalizzato.jar aveva una priorità di riferimento più alta! – superx3

+0

Ho aggiornato la mia risposta. – anhtuannd

Problemi correlati