我在一个项目库中使用ActionBarSherlock作为库项目。 在将项目移动到新计算机并更新SDK工具之前,一切正常。
我有这个错误,我不明白。当我创建一个像这样扩展SherlockFragment的类时:
import com.actionbarsherlock.app.SherlockFragment;
public class SomeFragment extends SherlockFragment {
...
}
我有以下编译错误:
The type android.support.v4.app.Fragment cannot be resolved. It is indirectly referenced from required .class files
我检查过以下内容:
还有别的吗?
答案 0 :(得分:67)
自从我更新SDK以来,我遇到了同样的问题。 我通过这样做(在eclipse上)解决了我的问题:
Properties
=> Java Build Path
=> Order and Export
标签=>选中android support v4
或Android Private Libraries
,然后选择确定check Android Private Libraries
答案 1 :(得分:11)
Sebastien的回答实际上引导我找到解决方案。但是,重要的是要提到必须手动将支持库添加到构建路径,以便能够检查它以进行导出。以下是为我解决问题的步骤:
然而,对于我来说,为什么这一点必须如此复杂才是一个谜 - 正如Josh所说,Eclipse与Android结合以及具有几个依赖关系的大型项目很难使用,我希望这将在不久的将来得到改善
答案 2 :(得分:10)
在我的情况下,我使用2个Android库,需要android支持库。 问题是两个库都有不同版本的Android支持库。
要解决此问题:右键单击库项目=> Android工具=>添加支持库。
对每个库重复此操作。
答案 3 :(得分:8)
我有同样的问题。有2个不同的库。从主项目中删除支持库
答案 4 :(得分:4)
这是最简单的解决方案:
右键单击项目文件夹 - >构建路径 - >配置构建路径 - > 添加外部罐子(来自库标签) - >选择“android-support-v4.jar”文件。
(它将位于Android SDK文件夹中,这里是通用路径“android-sdk \ extras \ android \ support \ v4”)。
在此之后清理你的项目和快乐的编码......
答案 5 :(得分:1)
我遇到了同样的问题,我通过右键单击项目解决了这个问题 - > Buid路径 - >配置构建路径 - > “从左手列表中选择Android” - > “从右侧面板中选择构建项目目标的复选框” - >点击Apply - >单击确定
答案 6 :(得分:0)
对我来说有用的东西与@Sebastien和@FleshWound上面的解决方案有点不同。
答案 7 :(得分:0)
我使用Android Studio并遇到类似问题(用于加载ListFragment)。 我最初导入了库:
import android.support.v4.app.ListFragment;
然后在app diectory中更新了build.gradle:确保依赖项部分包含支持库 -
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:20.0.0 }
答案 8 :(得分:0)
我是stackoverflow的新手。 然而,这是我的解决方案或经验。 我通过Project Properties解决了这个问题 - >左侧面板上的“Android” - >添加 - >从下拉菜单中选择所需的支持库 - >'应用' - >确定
这就完成了。即使从“Java Build Path”的“Order and Export”中取消选中“Android Private Libraries”,这仍然有用。