2014-02-18 196 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); –