ActionBarSherlock – typesandroid.support.v4.app.Fragment无法parsing。 它是从所需的.class文件间接引用的

我使用ActionBarSherlock作为一个库本身的项目库项目。 直到我将项目移到新的计算机上并更新了SDK工具之后,这一切都运行良好。

我有这个错误,我不明白。 当我创build一个像这样扩展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 

我检查了以下内容:

  • ActionBarSherlock作为库导入
  • 在构buildpath(没有红叉)和actionbarsherlock.jar存在没有明显的错误
  • 支持库在ActionBarSherlock项目中,而不在其他依赖的项目中

还要别的吗?

自从我更新了SDK之后,我遇到了同样的问题。 我已经通过这个(在eclipse上)解决了我的问题:

  • 右键单击操作栏sherlock library => Properties => Java Build Path => Order and Export tab =>选中android support v4Android Private Libraries然后selectOk
  • 右键单击您的个人项目,然后转到properties => java build path => check Android Private Libraries
  • 清理这两个项目,它应该工作。

塞巴斯蒂安的回答实际上使我find了解决办法。 但是,必须提到支持库必须手动添加到构buildpath,以便能够检查导出。 为了将来的参考,下面是为我解决问题的步骤:

  1. 确保支持库位于ABS项目的libs文件夹中,而不在其他位置
  2. 右键单击库 – >生成path – >添加到生成path
  3. 右键单击ABS项目 – >属性 – > Java Build Path – > Order and Export – >检查android-support-v4.jar文件并保存
  4. 右键点击包含ABS的项目 – > Properties – > Java Build Path – > Order and Export – >检查“Android Private Libraries”并保存
  5. 如果您的依赖关系层次结构中有其他项目,请对所有这些项目执行第4步
  6. 清理整个工作区(或所有受影响的项目),并希望最好。

然而,对于我来说这是一个谜,因为Josh提到,Eclipse与Android以及一些依赖项目相关的大型项目很难使用,我希望在不久的将来可以改进。

在我的情况下,我使用了2个Android库,需要android支持库。 问题是两个库都有不同版本的Android支持库。

要解决该问题:右键单击库项目=> Android工具=>添加支持库。

对每个库重复此操作。

我有同样的问题。 有两个不同的图书馆。 从主项目中删除支持库

这是最简单的解决scheme:

右键单击您的项目文件夹 – >生成path – >configuration生成path – >添加外部jar子(从库选项卡) – >select“android-support-v4.jar”文件。

(它将位于Android SDK文件夹中,这里是通用path“android-sdk \ extras \ android \ support \ v4”)。

在这干净你项目和快乐编码…

我遇到同样的问题在我的情况下,我通过右键单击项目 – > Buidpath – >configuration构buildpath – >“从左侧列表中selectAndroid” – >“解决scheme从右侧select生成项目目标的checkbox手面板“ – >点击应用 – >点击确定

对我来说有效的是与上面的@Sebastien和@FleshWound的解决scheme有点不同。

  • 复制/ MyProject / libs /文件“android-support-v4.jar”,并覆盖/ActionBarSherlock/libs/android-support-v4.jar中的文件。
  • 去“Project Properties” – >“Java Build Path” – >“Add” – > ActionBarSherlock项目。
  • 清洁项目。

我正在使用Android Studio,并面临类似的问题(用于加载ListFragment)。 我最初导入了库:

导入android.support.v4.app.ListFragment;

然后更新应用程序内的build.gradle:确保依赖项部分包含支持库 –

  dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:20.0.0 } 

我是新的stackoverflow。 不过,这是我的解决scheme或经验。 我通过左侧面板上的Project Properties – >'Android'解决了这个问题 – > Add – >从下拉菜单中select需要的支持库 – >'Apply' – > OK

这完成了。 即使从“Java Build Path”的“订购和导出”中取消选中“Android专用库”时,也是如此。