2

我打开了我的旧项目,该项目在几个月前可以正常工作。现在我几乎在每个活动中都有 eclipse 错误或与错误相关的东西 - R cannot be resolved to a variable.

在此处输入图像描述

我做了在 stackoverflow 上阅读的所有操作,但还没有任何效果:

  • 进口检查
  • 项目清理

在此处输入图像描述

我认为问题可能出在其中一个 XML 文件中,其中还包含 3 个错误,例如No resource identifier found for attribute "atribute" in package my.package

在此活动中,我使用 facebook 示例来分享内容。代码:

<?xml version="1.0" encoding="utf-8"?>
<!--
    Copyright 2010-present Facebook.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:facebook="http://schemas.android.com/apk/res-auto"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="#FFF"
        >
    <LinearLayout android:orientation="vertical"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:background="#FFF"
                  android:id="@+id/activity_share_ui_container">
        <com.facebook.widget.LoginButton   <!-- 2 errors here --->
                android:id="@+id/login_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                facebook:confirm_logout="false"
                facebook:fetch_user_info="true"
                />
        <LinearLayout
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:gravity="center_horizontal"
                android:orientation="vertical">
            <TextView
                    android:id="@+id/greeting"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_gravity="center"
                    android:textColor="#333"
                    android:textSize="18sp"/>
            <com.facebook.widget.ProfilePictureView <!-- 1 error here --->
                    android:id="@+id/profilePicture"
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:gravity="center_horizontal"
                    android:layout_marginBottom="10dp"
                    facebook:preset_size="normal"/>
            <Button
                    android:id="@+id/postStatusUpdateButton"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Post Status Update"
                    />
            <Button
                    android:id="@+id/postPhotoButton"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Post Photo"
                    />
            <Button
                    android:id="@+id/pickFriendsButton"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Pick Some Friends"
                    />
            <Button
                    android:id="@+id/pickPlaceButton"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Pick Place"
                    />
        </LinearLayout>
    </LinearLayout>
    <FrameLayout
            android:id="@+id/fragment_container"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>

</LinearLayout>

属性有问题: 在此处输入图像描述

我错过了什么?

4

4 回答 4

4

您在 xml 文件中使用了 facebook UI 元素。您的 android 项目似乎无法获得 FaceBook SDK 的引用,因为您可能已将其删除或移动到某处。您可以通过以下方式进行验证:

就在项目探索中的项目上 --> 选择属性 --> 选择 Android --> 检查是否有正确的 FaceBook SDK 引用。

一旦你提供了正确的参考......构建错误将在清理和构建后消失。

于 2013-09-09T13:45:35.663 回答
2

已经给出了答案,所以这只是为了澄清错误发生的原因:

只有编译所有资源,才能生成 R 文件。正如您所注意到的,您的资源中有错误(可能与正确包含 FB SDK 有关),这会阻止生成 R.java 文件。由于该文件不存在,因此无法解析R cannot be resolved to a variable

Eclipse 提供导入类似名称的类 (android.R) 或创建名为 R 的东西(无论是类、枚举、变量...),在这种情况下,这些解决方案都不是您所需要的。

从您提供的屏幕截图来看,FB SDK 的导入有问题。选择删除,然后再次添加。

于 2013-09-09T13:54:42.237 回答
1

尝试这个:

  • 导入 Facebook
  • 清理你的项目
  • 导入com.your.package.R(需要用到资源的地方)
于 2013-09-09T13:37:15.293 回答
0

首先检查您的 xml 文件以确保它们有效并且不会产生任何错误

然后,尝试使用完全限定的包名称导入 R,如下所示:

import.com.xyz.R;

然后保存文件。

于 2013-09-09T14:22:29.340 回答