2013-08-02 67 views
0

我知道這個問題之前已經被問過了,但我在我的智慧結束這一點。我剛剛創建了一個新項目並獲取此錯誤。java:R無法解析爲變量

Ofcourse R.java文件沒有被生成。

我使用JRE7的Android 4.2.2

package com.example.myfirstapp; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 

public class MainActivity extends Activity { 

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

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

我們可以看到在MainActivity類沒有R進口

讓我們來看看觸及清單文件:

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

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.myfirstapp.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> 

沒有什麼看起來不合適的地方。我已經嘗試了多個關閉項目的開放項目。清潔和建造。

沒有res是大寫的,我已經嘗試過使用java構建路徑順序和導出項目屬性。在libaries我有3個不同的Android libaries:

的Android 4.2.2 安卓私人Libaries Android的依賴

這讓我開始渴望C++ :)

+0

如果您的軟件包名稱和文件夾相同,則不需要「R」文件導入。確保'gen'文件夾包含一個包含你的包名和'R.java'的文件夾。 –

回答

3

這只是爲我工作。

向清單中添加了一個字符並保存。刪除所說的字符清理投影和包下創建與buildconfig和R java中的gen。

爲什麼工作我不知道。

+1

哇。這聽起來像是一個Eclipse問題。很高興你找到了解決辦法;我會在下次看到您的問題發佈在SO上時記住這一點。 :) –

+0

是的defo一些eclipse構建問題。我很想知道它是如何在引擎蓋下進行的,這意味着觸摸文件會導致它生成類 – Will

2

如果您有任何錯誤,你的資源文件,這些工具不會生成R.java文件。在擔心類com.example.myfirstapp.R未被定義之前,查找並修復.xml文件中的所有錯誤。如果您在.xml文件中沒有錯誤,請清理並重建您的項目。

此外,如果您使用的是Eclipse,只需要在Package Explorer中右鍵單擊項目名稱,導航到Android工具並選擇「修復項目屬性」即可排除編程環境問題。

+0

在一個全新的項目中會自動產生這個錯誤,我還沒有寫出一行代碼或者觸摸xml。我創建了一個新的froyo項目,但沒有觸及它 – Will

+0

@ Will--聽起來像你可能有配置問題。你在使用Eclipse嗎?此外,打開問題視圖(窗口 - >顯示視圖 - >問題),看看是否有任何線索。確保您使用的是最新工具:檢查軟件更新並運行Android SDK Manager。 –

+0

是啊使用eclipse SDK 4.2.2 Android ADT&Android開發工具包版本:22.0.1.v201305230001--685705。問題視圖只是告訴我主到R上的兩個引用不能得到解決 – Will

0

之前發生過這種情況,由於某種原因,我的sdk/build-tools文件夾缺少構建目標。在那裏檢查,看看你是否有任何文件夾。

0

確保資源文件中沒有錯誤,那麼只要你建立你的項目,你會得到R.java生成,這裏要注意的是不管你的java代碼是否不編譯,R.java會生成如果資源文件沒有問題。

如果這一步成功,您可以導入所有必需的R.java文件。請注意,如果您的項目中包含庫項目,則可能有多個R.java文件。所有R.java文件將分別位於不同的軟件包中。例如。我有"com.actionsherlock.R.java" & "com.myproject.R.java"

在這種情況下以上情況第一次導入是必須com.actionsherlock.R。但是,我不包含庫項目,您不需要導入R.java,因爲這個文件將在同一個包中生成。

+1

你不需要'import'語句在同一個包裏。 –

+0

@TedHopp已更新。 – Ankit

-1

遵循簡單以下步驟

  • 打開Android SDK管理器
  • 安裝Android SDK構建工具(在工具)
  • 重啓Eclipse
0

在我來說,我使用的Java 1.6並且它不支持android 5.0,因此在android sdk中刪除了這些庫文件,然後清理它工作正常的項目。