2010-10-15 1 views
1

Я не понимаю, почему Eclipse не знает, как разрешить цветовые ресурсы, которые я определил. Я делаю что-то неправильно?Почему arent мои новые ресурсы добавлены в res/sub-folders, отображаемые в классе R?

R.color.notepad_lines не может быть решена MyNewTextView.java

У меня были проблемы, прежде чем тоже с затмением в состоянии найти изображения в моем/RES/вытяжке Адресной книги

/RES/значение/цвет .xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<color name="notepad_paper">#AAFFFF99</color> 
<color name="notepad_lines">#FF0000FF</color> 
<color name="notepad_margin">#90FF0000</color> 
<color name="notepad_text">#AA0000FF</color> 
</resources> 

MyNewTextView.java

... 
private Paint marginPaint; 
private Paint linePaint; 
private int paperColor; 
private float margin; 


private void init(){ 
    //Get Reference to Resource Table 
    Resources myRes = getResources(); 

    //Create paint brushes 
    marginPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 
    marginPaint.setColor(myRes.getColor(R.color.notepad_margin)); 

    linePaint = new Paint(Paint.ANTI_ALIAS_FLAG); 
    linePaint.setColor(myRes.getColor(R.color.notepad_lines)); 

    paperColor = myRes.getColor(R.color.notepad_paper); 
    margin = myRes.getDimension(R.dimen.notepad_margin); 
} 

... 

Е Clipse продолжает говорить, что не может найти какой-либо из R. * ресурсы =/

R.java

public final class R { 
    public static final class attr { 
    } 

public static final class color { 
    public static final int notepad_lines=0x7f040001; 
    public static final int notepad_margin=0x7f040002; 
    public static final int notepad_paper=0x7f040000; 
    public static final int notepad_text=0x7f040003; 
} 
public static final class dimen { 
    public static final int notepad_margin=0x7f050000; 
} 
public static final class drawable { 
    public static final int ic_menu_add=0x7f020000; 
    public static final int ic_menu_cut=0x7f020001; 
    public static final int ic_menu_king=0x7f020002; 
    public static final int icon=0x7f020003; 
} 
... 
+1

Вы сделали чистую сборку? Он не будет находить вновь добавленные ресурсы R до тех пор, пока вы не создадите, так как R-файл автоматически генерируется в этот момент. –

+0

У меня есть автоматическая проверка. и Ive сделал чистую вещь сборки несколько раз уже =/ – qodeninja

+0

Что вы видите в файле R? Есть ли у вас какие-то ресурсы? –

ответ

3

У меня была эта проблема тоже, если я не позволить Eclipse, создать файл, а тот капли XML-файл под res/ где-то. Но я только что нашел способ обойти это: В представлении Project Explorer, найти Рез/значение каталога и выберите обновления из меню правой кнопки мыши: alt text

colors.xml теперь появляется в исследователь, и R.java теперь содержит класс R.color. Восстановите его, вы не перестраиваете автоматически.

+0

Вы только что сделали это прямо сейчас, или вы делаете тот же пример, что и я?^_^К сожалению, обновление не решило проблему для меня – qodeninja

+0

Я просто попытался решить эту проблему, потому что у меня была такая же проблема, когда я пытался добавить уже существующие файлы. Я не в том же проекте. По умолчанию Eclipse игнорирует новые файлы. Я создал файл в XEmacs с вашим xml и сохранил его как res/colors.xml. Я добавил 'int 'line_color = R.color.notepad_lines; 'в основном классе' Activity', который является всего лишь клоном моего проекта HelloWorld. Я не мог построить, потому что gen /.../ R.java не определял класс «color». После обновления, R.java был обновлен, и проект был найден. – frayser

+0

Да, кажется, только «исправить», когда я нажал Run As> Android App, и ни в какое другое время =/ – qodeninja

1

Это может быть глупой предложение, но ... Является ли MyNewTextView.java в том же имя пакета, как R.java файл? Если нет, то вам нужно добавить ссылку на пакет с помощью инструкции import.

+1

Нет, хорошее предложение. Имя пакета не отображается ни в одном из источников выборки. – frayser

+0

Да, это было хорошее предложение, это была проблема. Путь пакета для R отличается от того, где генерируется R.java. – qodeninja

1

Удалить файл R.java в папке поколения ...

2

Убедитесь, что вы не импортировать предоставленный класс «импорт android.R» андроида ресурсов, но собственный сгенерированный класс Resource например импорт .R