Domanda

Questa è una domanda in due parti di aggiungere una libreria di terze parti (JAR) per un progetto di Android in Eclipse.

La prima parte della domanda è, quando provo ad aggiungere un JAR di terze parti (libreria) per il mio progetto Android in primo luogo ho capito il problema della

  

Errore durante l'analisi XML: non legato prefisso

perché sto cercando di utilizzare una classe da quel vaso (e hanno bisogno del prefisso in qualche modo definito). Cosa sta succedendo?

In secondo luogo, (che dopo aver fissato - la risposta è riportata qui sotto), la mia domanda non funziona su Android e scopro tramite il debugger (LogCat) che la classe Sto tentando di consumare non esiste <. / p>

  

causati da:   java.lang.ClassNotFoundException:   com.github.droidfu.widgets.WebImageView ...

Perché, quando ottengo nessun errore di compilazione o linker in Eclipse, ce l'ha questo problema sull'emulatore?

Queste due domande sono retoriche per ho intenzione di rispondere io stesso sotto. Altri messaggi in questo forum scorrimento fino al problema e altrove non c'è discussione, ma sento che posso essere più esplicito utile per la persona accanto a venire insieme.

È stato utile?

Soluzione

Ora per il problema di classe mancante.

Sono uno sviluppatore di Eclipse Java EE e sono stati l'abitudine per molti anni di aggiunta di librerie di terze parti attraverso il meccanismo "User Library" in Build Path. Naturalmente, ci sono almeno 3 modi per aggiungere una libreria di terze parti, quello che uso è la più elegante, a mio modesto parere.

Questo non lavoro, tuttavia, per Android, la cui Dalvik "JVM" non può gestire una classe Java compilato ordinaria, ma deve averlo convertito in un formato speciale. Questo non accade quando si aggiunge una libreria nel modo io sono abituato a farlo.

Al contrario, seguire le istruzioni (ampiamente disponibili) per l'importazione del libreria di terze parti, quindi l'aggiunta utilizzando costruire il percorso (che lo rende noto a Eclipse per scopi di compilazione). Ecco il passo passo:

  1. Scarica la biblioteca per il vostro ospite sistema di sviluppo.
  2. Creare una nuova cartella, libs , in il progetto Eclipse / Android.
  3. tasto destro del mouse libs e scegliere Import -> Generale -> File System, quindi Avanti, Sfoglia nel file system per trovare genitore della biblioteca directory (cioè dove .: scaricato a).
  4. Fare clic su OK, quindi fare clic sul nome della directory (non la casella di controllo) in riquadro a sinistra, quindi controllare il JAR rilevante nel riquadro di destra. Questo mette la libreria nel progetto (Fisicamente).
  5. Fai clic destro sul vostro progetto, scegliere costruire il percorso -> Configura Corporatura Percorso, quindi fare clic sulla scheda Librerie, poi Aggiungere JAR ..., navigare verso la nuova JAR nel libs e directory aggiungerlo. (Questo, per inciso, è il momento in cui la nuova JAR viene convertito per l'utilizzo su Android.)

NOTE

Non può essere necessaria

Passo 5, se il lib è già incluso nel vostro percorso di generazione. Basta assicurarsi che la sua esistenza prima prima di aggiungerlo.

Quello che hai fatto qui compie due cose:

  1. Include un JAR Dalvik-convertito nel progetto Android.
  2. Rende definizioni Java disponibili per Eclipse, al fine di trovare la classi terze parti durante lo sviluppo (cioè, la compilazione) il codice sorgente del progetto.

Altri suggerimenti

Assicurarsi che il 3 ° vasetti partito sono nei vostri progetti cartella "libs" e saranno messi in .apk quando si comprime l'applicazione. Si possono vedere errori di runtime sul dispositivo se qualcosa nel vaso non è supportato, ma a parte che ho avuto grande successo con questo.

La creazione di un Progetto Biblioteche

Un progetto di libreria è un progetto standard di Android, in modo da poter creare una nuova nello stesso modo come si farebbe con un nuovo progetto di applicazione.

Quando si crea il progetto di libreria, è possibile selezionare qualsiasi nome dell'applicazione, il pacchetto, e impostare gli altri campi, se necessario, come mostrato in figura 1.

Quindi, impostare le proprietà del progetto per indicare che si tratta di un progetto di libreria:

In Esplora Package, fare clic con il progetto di libreria e selezionare Proprietà. Nella finestra Proprietà, selezionare la "Android" Proprietà gruppo a sinistra e individuare le proprietà biblioteca a destra. Selezionare la casella di controllo "è Library" e fare clic su Applica. Fare clic su OK per chiudere la finestra Proprietà. Il nuovo progetto è ora contrassegnato come un progetto di libreria. Si può iniziare a muoversi il codice sorgente e le risorse in esso, come descritto nelle sezioni di seguito.

Se si utilizza la versione di ADT 22, è necessario controllare le dipendenze Android e biblioteche private Android nella scheda ordine & Export nel percorso di progetto di costruzione

In primo luogo, il problema del prefisso mancante.

Se si consumano qualcosa nel vostro file di layout che viene da una terza parte, potrebbe essere necessario consumare il suo prefisso pure, qualcosa come "droidfu:" che si verifica in più punti nel costrutto XML di seguito:

<com.github.droidfu.widgets.WebImageView android:id="@+id/webimage"
          android:layout_width="75dip"
          android:layout_height="75dip"
          android:background="#CCC"
          droidfu:autoLoad="true"
          droidfu:imageUrl="http://www.android.com/images/opensourceprojec.gif"
          droidfu:progressDrawable="..."
          />

Questo esce dalla JAR, ma avrete anche bisogno di aggiungere nuovi "xmlns: droidfu"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:droidfu="http://github.com/droidfu/schema"
      ...>

o si ottiene l'errore del prefisso non legato. Per me, questo è stato un fallimento per copiare e incollare tutti l'esempio fornito dalle pagine della biblioteca di terze parti.

  

Errore durante l'analisi XML: non legato prefisso

     

Resource '/ playteddy / res' non esiste.

ho avuto la sopra due errori e alla fine ho risolto.

Fare clic destro del progetto -> Proprietà -> percorso java accumulo -> googleadmobadsdk (selezionare e metterlo in alto), quindi si esegue e problema risolto. E 'risolto il mio errore di runtime.

Mettere la fonte in uno spazio di lavoro al di fuori della cartella yourt. Rightclick nel progetto-Explorer e selezionare "Importa ..."

Importa il progetto nello spazio di lavoro come un progetto Android. Prova a costruirlo, e assicurarsi che non è segnato come un progetto di libreria. Assicurarsi inoltre che si tratta di costruire con il supporto API di Google, se non sarà possibile ottenere errori di compilazione.

Poi, nel fare clic destro sul progetto principale in Gestione progetti. Selezionare le proprietà, quindi selezionare Android a sinistra. Nella sezione biblioteca sotto, clicca su "Aggiungi" ..

La biblioteca MapView-palloncini dovrebbe essere disponibile per aggiungere al progetto ..

Vai al percorso di generazione in Eclipse, quindi fare clic su ordine e l'esportazione, quindi controllare la libreria / vaso, e quindi fare clic sul pulsante fino a spostarlo in cima alla lista per compilarlo prima.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top