2013-08-20 4 views
6

Android Studio non può compilare il mio progetto di test, perché non può risolvere le risorse. Ho provato alcune impostazioni diverse per la directory res nel gradle.build, ma non ha funzionato. Mi sto perdendo qualcosa di semplice qui? È un semplice progetto HelloWorld con niente di personale.Android Studio non trova le mie risorse

Ho la seguente struttura di progetto, come è stato creato dalla procedura guidata Studio Android (più recente 0.2.5 release):

enter image description here

Nel mio AndroidManifest.xml c'è il solito riferimento nome dell'applicazione: @ string/nome_app. Questa stringa è definita in main/res/values ​​/ strings.xml (selezionata nello screenshot in alto).

L'errore che ottengo dalla IDE (Android Studio) è:

android-apt-compiler: [MyApplicationProject] C:\...\MyApplication\src\main\AndroidManifest.xml:6: error: 
Error: No resource found that matches the given name (at 'label' with value '@string/app_name'). 

L'errore che ottengo dalla riga di comando quando ho eseguito "compiti Gradle" è:

A problem occurred configuring root project 'MyApplicationProject'. 
> Failed to notify project evaluation listener. 
    > Main Manifest missing from C:\...\MyApplicationProject\src\main\AndroidManifest.xml 
+0

controllo questa risposta http://stackoverflow.com/domande/16682223/how-do-i-struttura-pro ject-test-directory-in-android-studio – robotoaster

+0

Grazie, ma volevi mostrarmi esattamente? Conosco già questo post, ma è incentrato sulle impostazioni di test. Le cartelle di test sono necessarie in modo che le mie cartelle di ricerca vengano riconosciute? – muetzenflo

+0

non è necessario specificarli poiché vengono denominati per impostazione predefinita come mostra il mio screenshot. Tutto quello che faccio è aggiungere testPackageName e testInstrumentationRunner alla configurazione di default. Inoltre non sto usando IDE per eseguire test, ma gradle command – robotoaster

risposta

4

Se si verifica questo problema nella versione corrente di Android Studio, o qualcosa nella stessa misura (ad esempio, ho aggiunto immagini alla mia cartella disegnabile e non sono state riconosciute), il problema potrebbe essere quello che ho riscontrato.

Se si è verificato questo problema dopo aver duplicato un progetto su cui si stava lavorando, è probabile che questo nuovo progetto non sia stato importato correttamente.

Ho commesso l'errore di copiare e incollare il progetto nell'IDE, rinominandolo (modifica manifest), quindi cercando di lavorarci sopra. Questo non funzionerà, perché il nuovo progetto sta ancora accedendo alla cartella res dell'originale.

Quando si duplica un progetto, in modo da non rovinare l'originale è necessario:

  1. Vai alla cartella del progetto Studio Android (clic destro sul vostro attuale progetto nell'IDE, e selezionare "Mostra in Esplora risorse" .
  2. Copia + Incolla questo progetto nella stessa directory;.. rinominare la cartella di conseguenza per il nuovo nome versione
  3. in IDE selezionare file> Importa progetto> ... E individuare la directory del nuovo progetto
  4. (Procedere per rinominare il progetto in IDE di conseguenza. Cambiare il pacchetto nome ge in AndroidManifest.xml)

In questo modo l'IDE crea un nuovo progetto per esso e accede alla cartella di ripristino corretta (non quella dell'originale).

Anche se questo potrebbe non essere la soluzione per molti di voi che leggono questa domanda; Mi sono imbattuto in questa domanda molte volte prima di scoprire il modo corretto di duplicare un progetto.

Spero che questo possa salvare qualcuno un po 'di tempo.

+1

Questa era solo la soluzione che stavo cercando. grazie per avermi risparmiato un sacco di tempo. – Maverick1st

6

Prova ad aggiungere il seguente sotto defaultConfig (all'interno di android {...})

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

Grazie, l'ho provato anche allora. Ma era un bug nella versione di Android Studio. Dalla versione 0.5.6 funziona bene. – muetzenflo

+0

@muetzenflo Se questa è la risposta, è necessario scriverla e contrassegnarla come risposta. – ThomasW

+0

Potresti dirmi dove posso imparare tutte le proprietà sourceSets contains? Su [gradle page] (http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.SourceSet.html) posso trovare solo 'java' e' risorse'. – CopperCash

1

Anche se è un post molto vecchio, @ThomasW ha suggerito di rendere questa la risposta ufficiale: si è verificato un errore nella versione 0.2.5 Da quando uso le versioni più recenti di Android Studio non ho più avuto questo problema.

+3

Hai sbagliato - Ho questo problema nel nuovissimo Studio Android ... – Krystian

+0

Hmm è strano. Io uso AS ogni giorno e non ho mai avuto questo problema dopo lo 0.2.5. Ma con la nuova versione 0.8.1 ci sono stati numerosi cambiamenti con la gestione/importazione interna del progetto. Se trovi una soluzione migliore, pubblicala qui e la contrassegnerò come corretta. Forse provare a svuotare la cache e riavviare AS (disponibile dal menu File) – muetzenflo

+0

Ho trovato, cosa non andava nel mio caso - Avevo due viste in RelativeLayout, la prima era usare la proprietà della relazione con la seconda (per id) - AndroidStudio non ha problema con la risoluzione di tale vista per l'anteprima (c'era tutto bene), ma gradle non lo costruì. Ho dovuto cambiare l'ordine di quelle viste e ora funziona bene. – Krystian

0

ho lottato con questo per un po 'e aveva sempre problemi che creano nuovo progetto Maven in Android Studio Che fine ha funzionato è la seguente (testato con Android Studio 1.0.1)

  • clic destro sul file di POM -> Maven -> Rimuovi progetto (qui se si lamenta, assicurarsi di rimuovere le dipendenze sul progetto)
  • fare clic destro di nuovo sul pom -> Maven -> Importa progetto