2014-02-18 1 views
0

У меня возникли проблемы при настройке макета, изображений и т. Д. С помощью «R.». Ниже приведен код, который дает эту ошибку.Невозможно разрешить символ «R»

Но тот же код отлично работает, если я выбираю «скомпилировать с:» как «API 19». Я хочу, чтобы мой код работал на моем мобильном телефоне, который равен 2.3.3.

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

package com.example.testfor23; 

import android.support.v7.app.ActionBarActivity; 
import android.support.v7.app.ActionBar; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.os.Build; 

public class MainActivity extends ActionBarActivity { 

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

     if (savedInstanceState == null) { 
      getSupportFragmentManager().beginTransaction() 
        .add(R.id.container, new PlaceholderFragment()) 
        .commit(); 
     } 
    } 
} 

Внизу файл манифеста

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.testfor231" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="7" 
     android:targetSdkVersion="19" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name="com.example.testfor231.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

Если я выбираю «compileSdkVersion 19», то он работает прекрасно.

android { 
    compileSdkVersion 10 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 9 
    } 
+0

Исправить ошибки i файлы ресурсов и очистить и построить – Raghunandan

+0

У меня была эта проблема раньше, и, кроме того, что я говорю о ее огромной боли в заднице, я не могу сделать больше, если вы следите за всеми текущими ответами , Если худшее приходит к худшему, попробуйте удалить файлы XML до тех пор, пока ошибка не исчезнет ... – AStupidNoob

+0

Просьба также показать код для res/layouts/activity_main.xml. –

ответ

0

В вашем проекте есть некоторые ресурсы, которые несовместимы с 2.3.3. Исправьте их, и все будет хорошо.

0

Вам нужно добавить

import com.example.testfor23.R; 

для того, чтобы исправить ошибки R в файле Java. Если вы все еще получаете ошибки, то один из ваших файлов XML содержит ошибку, и вам нужно будет выяснить, что такое ошибки. Также может помочь очистка проекта. Также обратите внимание, что вам нужно правильно установить цель в project.properties. В вашем случае, это должно быть:

target=android-19 

Как правило, поддержка старых версий Android является проблематичным, поскольку они не содержат многие из методов, классов и особенности новые делать. Это особенно заметно для версий ниже API 10.

Вы можете использовать Support Libraries, если вы абсолютно обязаны поддерживать эти устаревшие версии.

Как вы можете видеть here, только 1,3% устройств в настоящее время работают с версией старше API10 (Gingerbread 2.3.3). Поэтому я настоятельно рекомендую вам установить:

android:minSdkVersion="10" 

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

0

Иногда это происходит из-за ошибок в вашем xml, и это может быть ошибка sintax, ресурсы, которые несовместимы, пытаются не иметь дубликатов в каталоге res. Также импортировать R из вашего проекта, иногда эта ошибка возникает, если нету импортирована (в данном случае)

import com.example.testfor23.R; 

Потому что, если вы не импортировать его, вы ссылаетесь к ресурсу с платформы.

+0

У меня нет других XML-файлов. Я только что создал новый проект через андроид-студию. Он просто дал эту ошибку. Я даже не мог добавить «import com.example.testfor23.R;», и он дает ту же ошибку. – Sankarlal

+0

импортировать R из вашего проекта, чтобы вы могли получить доступ к ресурсу из своего проекта, в этом случае (я предполагаю) import com.example.testfor231.R; –

+0

@ user3319315, что является ложным, поскольку у вас есть следующая строка в вашем код: setContentView (R.layout.activity_main); –