2012-06-29 3 views
4

http://developer.android.com/training/basics/firstapp/building-ui.htmlошибка Android обучающая: R не может быть решена с переменной

Я следовал этому учебнику, но у меня есть две ошибки, как «R не может быть разрешен к переменному». В прошлом я делал приложения для Android (простые), и я помню, что эта проблема исправлена, проверяя, есть ли у меня оператор импорта R (чего я не знаю), и был ли очищен проект до его создания снова (я очистил его, и я все еще получаю ошибку). Я не понимаю, что делать. Благодаря!

* Также хочу отметить, что я видел нить одного и того же названия с 170 обращений, а решение «удалить инструкцию импорта R» не относится к моей проблеме (я не думаю) Еще раз спасибо

Весь код прямо по ссылке выше, но здесь для удобства

activity_my_first.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal"> 
    <EditText android:id="@+id/edit_message" 
     android:layout_weight="1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="@string/edit_message" /> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/button_send" /> 
</LinearLayout> 

MyFirstActivity.java

package com.example.myfirstapp; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.support.v4.app.NavUtils; 

public class MyFirstActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_my_first); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_my_first, menu); 
     return true; 
    } 


} 

strings.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="app_name">My First App</string> 
    <string name="edit_message">Enter a message</string> 
    <string name="button_send">Send</string> 
    <string name="menu_settings">Menu Settings</string> 
</resources> 

редактировать: Когда я очистить проект, я получаю это сообщение в консоли:

[2012-06-29 11:12:38 - MyFirstApp] W/ResourceType(6140): Bad XML block: header size 91 or total size 0 is larger than data size 0 [2012-06-29 11:12:38 - MyFirstApp] C:\Users\zhong\workspace\eclipse\MyFirstApp\res\menu\activity_my_first.xml:2: error: Error: No resource found that matches the given name (at 'title' with value '@string/menu_settings').

редактирования: добавил строку макет XML файл <string name="menu_settings">Menu Settings</string> Fixed ошибки очистки проекта, но я все еще не могу запустить проект из двух R-ошибок.

+0

Вы чистите проект? –

+0

Да. Я только заметил, что были ошибки, когда я чистил. Я отредактировал оригинальный пост – SwimBikeRun

ответ

7

Я работаю по тому же примеру и имею ту же (или очень похожую) проблему.

Наконец-то я заметил, что на манифесте появился маленький крошечный красный x. Конечно же, она жаловалась на это:

android:label="@string/title_activity_hello_world" > 

Поэтому я добавил:

<string name="title_activity_hello_world">Hello World</string> 

к strings.xml и теперь он работает.

+0

Они объясняют это снизу справедливым! – JMK

1

2 возможные вещи

имя пакета, указанный в Android Manifest не то же самое, как в файлах Java.

Или ваша IDE не сгенерировала файл R.java в папке gen /. Повторите попытку (несмотря на ошибку), и она, как правило, очистит ее.

В основном файл R.java генерируется для вас и в том же пакете, так что вы можете обратиться к нему просто как R.

0

Отвод подтверждают нет ошибки в

1- папки проекта 2 - Проблема Вид затмения 3 Консоль 4- журнал ошибок, как в образе enter image description here

+0

Есть две ошибки: setContentView (R.layout.activity_my_first); и getMenuInflater(). inflate (R.menu.activity_my_first, menu); ~ :: ~ оба говорят, что R не может быть разрешено переменной. – SwimBikeRun

+0

у вас есть R.java в папке gen проекта? –

+0

Нет просто BuildConfig.java – SwimBikeRun

0

Вы должны убедиться в

  1. Мойте проект Project -> Clean
  2. Каталог/Рез не содержат ошибки (некоторые файлы будут отображаться с красным значком на файловом проводнике)
  3. Вашего импорта не содержит эту строку import android.R;
  4. Проверьте, что в AndroidManifest.xml пакет атрибутов имеет правильное значение .<manifestxmlns:android="http://schemas.android.com/apk/res/android" package="your.correct.package.name"
3

У меня была такая же проблема во время обучения. Уборка проекта или очистка импорта не помогли решить проблему.

Как проблема была (просто) решена: я закрыл Eclipse и перезапустил его.

0

Это фиксированное для меня: https://stackoverflow.com/a/3259974/1538785

Похоже затмение любит, чтобы добавить импорт линию ява файлов без причины. Перейдите в свой java-файл, нажмите ctrl + shift + o, и появятся все операторы импорта. Удалить строку, в которой импорт andriod.R

1

Я имел android:text="@string/button_send"
Который дал ошибку: No resource found that matches the given name (at 'text' with value '@string/button_send').

Я пытался решить эту ошибку с помощью tuturial. Но в учебнике не сказано, что я должен писать все строки, необходимые по одному. Поэтому мне не хватает записи "<string name="button_send">Send</string>" в файле strings.xml.

После добавления предыдущей строки ошибка исчезнет! Я считаю, что это похоже на оригинальную проблему в этой теме.

Итак, если бы я скопировал целые строки из данного учебника, возможно, этого не произошло, но, набрав себе, я считаю, что это лучший способ обучения.

1

Я нашел решение:

пойти в project->res->menu, чем открыть файл XML туда и удалить эту строку:

android:title="@string/menu_settings" 

Я удален его и приступить к работе, после 3-х часов одного и того же предупреждение в разделе проблем.

Он даже имеет смысл, когда вы читаете это, «в title со значением @string/menu_settings»

+0

Я имею в виду res-> menu – yarin

0

правой кнопкой мыши на проекте, выберите «Android Tools»> «Добавить библиотеку поддержки»> «Android Поддержка библиотеки, редакция 11» > «Установить»

0

В моем случае проблема заключалась в том, что я был на 64-разрядной Linux, а необходимые 32-битные библиотеки не были установлены, а это значит, что инструменты сборки не могли генерировать R.java.

Выполнение этой команды, то очистка проекта, устранена ли проблема:

sudo apt-get install ia32-libs 
0

Убедитесь, что исполняемые файлы (AAPT и т.д.) в SDK/Build-инструменты/Android-хуг/* выполнимы, если вы запуская загрузку по умолчанию на вашем Linux-поле ...

+0

Это очень старый вопрос с уже принятым ответом – laaposto

0

У меня была такая же ошибка, когда пыталась сделать первый учебник. Для того, чтобы получить приложение, чтобы запустить я редактировал MainActivity.java так это выглядело как этот

package com.example.myfirstapp; 

импорта android.app.Activity; import android.os.Bundle;

общественный класс MainActivity расширяет активность {

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 

} 

}

Смежные вопросы