2014-02-18 195 views
0

我在使用“R.”设置布局,图像等时遇到了问题。下面是给出这个错误的代码。无法解析符号'R'

但是,如果我选择“compile with:”作为“API 19”,相同的代码工作正常。我想让我的代码在2.3.3的移动版上运行。

我在谷歌搜索我发现有很多人有这个问题。下面,但没有解决方案,我

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

修复错误我资源文件和清洁和生成 – Raghunandan

+0

我以前有过这个问题,除了说它的屁股巨大的痛苦,没有更多的我可以做,如果你已经按照所有当前的答案。如果最坏情况发生,请尝试删除XML文件,直到错误消失... – AStupidNoob

+0

还请显示res/layouts/activity_main.xml的代码。 –

回答

0

您的项目中有一些资源与2.3.3不兼容。修复它们,它会很好。

0

您需要,以解决在Java文件将R错误添加

import com.example.testfor23.R; 

。如果你仍然收到错误,那么你的一个XML文件包含一个错误,你将不得不找出错误是什么。清理项目可能也有帮助。另请注意,您需要在project.properties中正确设置目标。在你的情况下,它应该是:

target=android-19 

一般来说,支持老版本的Android系统是有问题的,因为它们不包含许多方法,类和功能的新的做。对于低于API 10的版本,这一点尤其明显。

如果您绝对必须支持这些旧版本,则可以使用Support Libraries

正如你可以看到here,目前只有1.3%的设备运行比API10更早的版本(姜饼2.3.3)。因此,我强烈建议你设置:

android:minSdkVersion="10" 

因为支持这些设备的附加好处远远超过它造成的问题。

0

有时会发生这种情况,因为您的xml中可能有错误,并且可能是sintax错误,所以不兼容的资源不要在res目录中有重复项。因为如果你不导入它,你指的从平台的资源也从项目中导入R,因为你还没有进口的(在这种情况下),有时会发生错误

import com.example.testfor23.R; 

+0

我没有任何其他的XML文件,我只是通过android studio创建了新的项目,它只是给出了这个错误 我甚至无法添加“import com.example.testfor23.R;”并且它给出了相同的错误。 – Sankarlal

+0

从你的项目导入R,所以你可以从你的项目中访问资源,在这种情况下(我假设)导入com.example.testfor231.R; –

+0

@ user3319315这是错误的,因为你有以下行代码:setContentView(R.layout.activity_main); –