2013-08-02 70 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中删除了这些库文件,然后清理它工作正常的项目。