2011-12-05 5 views
16

Ho due pacchetti. La classe che voglio importare dal primo pacchetto è dichiarata PUBLIC. Nonostante, quando provo un file dal secondo pacchetto, mi vengono visualizzati errori di compilazione come questo:Le classi non sono accessibili dal pacchetto esterno

PUBLICclass non è pubblico in mypackage; non è possibile accedere dal pacchetto esterno

Ho provato ad aggiungere un costruttore pubblico alla classe dal primo pacchetto, ma non fa alcuna differenza.

Avete qualche idea? Io uso Netbeans 7.

La classe dal primo pacchetto si presenta come di seguito:

public class PUBLICclass extends AbstractClass { public PUBLICclass() { } } 
+3

si può aggiungere la dichiarazione di classe (classe XYZ insieme ai costruttori) alla domanda? –

+0

Inoltre, assicurati che ci sia uno spazio tra la parola chiave "public" (non c'è bisogno di capitalizzarlo) e il nome della classe. – andri

+2

Hai, per caso, dimenticato di importare questa 'PUBLICclass' nel file Java che * usa * it? (Al di fuori del pacchetto in cui si trova 'PUBLICclass'.) – user268396

risposta

31

Fammi indovinare

vostra dichiarazione iniziale della classe PUBLICClass non era pubblica, allora si ha reso `pubblico', si può provare a pulire e ricostruire il vostro progetto?

+1

LOL Ho appena pulito e ricostruito il progetto e ora non ci sono problemi. – deem

+0

Succede solo qualche volta;) – mprabhat

+1

Nel mio caso, il riavvio dell'IDE (sto utilizzando Android Studio) mi ha aiutato. –

0

voi fare per caso hanno due PUBLICclass classi nel progetto, dove si è pubblico (quello di cui hai postato la firma qui), e un'altra che è il pacchetto visibile, e si importa quello sbagliato nel codice?

1

Controllare il costruttore della superclasse di default. Deve essere pubblico o protetto.

5
public SmartSaverCals(Context context) 
{ 
    this.context= context; 
} 

aggiungere pubblico alla tua constructor.in mio problema risolto caso

Problemi correlati