Ho lavorato su come accedere al file di risorsa di terze parti (file xml, immagini, riferito a here) da un modulo Android. È possibile farlo?in titanio, è possibile accedere ai file di risorse in bundle di terze parti (xml) da un modulo Android?
Poiché questi file di risorse sono chiamati con i file jar compilato-3rd-party, il che significa, io non sono in grado di utilizzare TiRHelper.getApplicationResource
metodo nel codice Java nativo a meno che:
- de-compilo il vaso file in codice java.
- sostituire tutto il riferimento di risorsa nativo a TiRHelper.getApplicationResource
- ricompilare il codice sorgente java di terze parti nel file jar.
(Questo terzo progetto partito è https://github.com/ShareSDKPlatform/ShareSDK-for-Android/tree/master/Sample, posso facilmente compilare & eseguirlo. Si può vedere ci sono file di risorse nella cartella/res, e uno dei file jar utilizzati questi file di risorse.)
Ho cercato per un giorno intero ma non ho trovato risposta.
Ho ricevuto alcuni indizi dallo document ufficiale, provato ma non riuscito. l'errore mostra che la risorsa non è accessibile dal codice java del modulo in titanio.
inoltre, questa stessa domanda (http://developer.appcelerator.com/question/178857/unable-to-load-resources-from-3rd-party-librarys-resourced-in-android-module) non ha risposta.
questa risposta (http://developer.appcelerator.com/question/49671/android-r-references-in-appcelerator-module#answer-266726) mi dà un indizio che i metodi:
getResource() gives an Error
getAndroidResource() gives an Error
but getApplicationResource() DOES work
e c'è un indizio che il 'apklib' può essere utile, ma dopo di leggere alcuni post, ho trovato è stato eliminato dal sito ufficiale di Maven. e ora Google consiglia di utilizzare il file 'aar'. Ma secondo questo numero ufficiale di Titanium (https://jira.appcelerator.org/browse/TIMOB-18565), non è ancora supportato dal titanio.
quindi, voglio sapere, è possibile lasciare che il codice java (ad esempio un'attività) acceda ai suoi file di risorse in bundle di terze parti (valore/string.xml o così) dal modulo Titanium? se è così, c'è qualche codice di esempio a cui posso fare riferimento?
grazie mille!
Un file JAR NON contiene le risorse dalla cartella/res. Un file AAR (o apklib ai vecchi tempi) contiene anche le risorse come parte del pacchetto. Quando ricompilate il codice sorgente java di terze parti in un file jar, probabilmente state perdendo le risorse. – gkee
@androidLearner yes, jar non contiene file di risorse e l'apklib funziona solo nella vecchia versione di Maven e il file aar non è ancora supportato da Titanium. Tuttavia, i file di risorse che sto menzionando sono i file nella cartella 'android/res' di un progetto Android nativo. Ho trovato la risposta. comunque, grazie per l'attenzione! –