2012-07-30 77 views
0

我是Android开发者的新手。我有一个非常简单的布局简单的“学习”应用程序。布局显示只有一个警告(硬编码字符串...应该使用@string资源),我怀疑是与问题有关。然而,在我的活动代码中,我有错误“R无法解析为变量”。android R无法解析,但布局没有错误

这里是在Java:

package com.example.treefields; 

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

public class TreeFieldsActivity extends Activity 
{ 
    public void onCreate (Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    setContextView (R.layout.activity_tree_fields); 
    } 
} 

而且,这里的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ems="10" 
     android:inputType="textMultiLine" 
     android:text="multiline text" /> 

</LinearLayout> 

任何想法?谢谢。

+2

清理并重建您的项目。如果仍未生成R,则报告错误。 – Shark 2012-07-30 20:51:12

+2

错误可能出现在任何XML文件中,而不仅仅是您的布局。打开Eclipse的**包资源管理器**窗口,然后按照错误图标到任何地方出现错误或使用**问题**窗口。 – Sam 2012-07-30 20:52:19

+1

也尝试删除R.java文件。它会重新构建,然后应该是正确的。 – edwoollard 2012-07-30 20:53:58

回答

2

它看起来并不像你甚至包括R.您需要包括资源包这样:

import your.package.name.R; 

棉绒串警告是像你说的可能不相关的。

+0

这似乎是问题,我还没有完全理解。我添加了import com.example.textfields.R。我有两个包 - 我正在学习切换活动,所以我开始使用TextFieldsActivity(工作),然后添加TreeFieldsActivity。前者(树域)最初是自动生成的,没有“R”文件的导入。然而,它建成并运行良好。那么,为什么第二个包需要导入? – 2012-07-30 21:31:02

+0

R构建在您的清单中定义的包中。您应该在您访问资源的所有文件中导入。可能没有包含的工作没有使用R包?顺便说一句你的活动不需要在不同的包中。 – Bostwickenator 2012-07-30 23:58:45

+0

好的,谢谢你的提示! – 2012-07-31 15:50:27

1

如果您使用的是Eclipse,您可以随时使用Ctrl + Shift + o让IDE找出要导入的内容,但是像Bostwickenator说的那样,您应该确保包含由包生成的R,而不是意外的android.R(因为这不会解决你创建的任何布局元素,而是一些Android常见的东西)。