在gradle中导入jar,编译,但Android Studio无法识别(0.2.10)

时间:2013-10-06 14:43:05

标签: android-studio

这很烦人。 我有一个基于Gradle的简单项目结构,与我拥有的其他项目非常相似。 该项目有这些进口:

dependencies {
    compile 'com.android.support:support-v4:13.0.+'
    compile files('libs/jackson-annotations-2.1.0.jar')
    compile files('libs/jackson-core-2.1.0.jar')
    compile files('libs/jackson-databind-2.1.0.jar')
    compile files('libs/zip4j_1.3.1.jar')
    compile files('libs/httpclient-4.1.3.jar')
    compile files('libs/httpclient-cache-4.1.3.jar')
    compile files('libs/httpcore-4.1.4.jar')
    compile files('libs/httpmime-4.1.3.jar')
    compile project(":grid_lib")
}

效果很好。

唯一的问题是Android Studio无法识别这些类,所以它们都是红色的,没有英特尔。 非常讨厌!

我一直把头撞到墙上太久了,所以我现在在这里试试。你说什么家伙?有什么想法吗?

谢谢: - )

修改

对于那些发现同样问题的人,我已经回答了我自己的问题。

3 个答案:

答案 0 :(得分:4)

好吧,回答我自己的问题......

有时候Android Studio的Gradle会变得混乱,我找到了一个简单的解决方法:

  1. 重新启动Android Studio
  2. 创建一个新项目(无论在哪里或名称)
  3. 等待完成下载其gradle的东西
  4. 重启android studio
  5. 对于其他gradle问题,可能还需要一个额外的步骤,即将gradle包装器(gradlew文件和gradle文件夹, not .gradle文件夹)从新创建的项目复制到您自己的项目中项目,并重新导入您的项目。

    您现在可以删除新项目......当然。

    编辑:

    Gradle的版本不断变化。 如果您仍有问题,请尝试此操作 -

    1. 编辑gradle / wrapper / gradle-wrapper.properties文件,并更新分发网址的版本。目前它应该是1.8,但它可能会在未来发生变化。因此,您可以使用“新项目”来查找版本应该是什么。示例:distributionUrl = http \://services.gradle.org/distributions/gradle-1.8-bin.zip

    2. 编辑build.gradle文件,并将最低版本更改为0.6。+ - 并且将来可能会再次更改。当前版本的示例:classpath'com.android.tools.build:gradle:0.6。+'

    3. 重新启动Android Studio并重新编译。

答案 1 :(得分:3)

一旦我尝试将Crashlytics升级到Fabric,我遇到了同样的问题,花了我几个小时来解决它。 我尝试清理项目并从IDE和终端重建它,关闭Android Studio并再次打开它,同步gradle,检查到其他git分支等等。他们没有解决问题! 作为最后的尝试,我关闭了项目并再次将其导入Android Studio,错误消失了!我无法找到解释为什么会发生这种情况的任何解释,但它可能是某种缓存问题,而且没有以正常方式清除。

答案 2 :(得分:2)

在我的情况下,问题是我使用的是旧版本的jar库,当更新到更新的版本时,Android Studio无法识别这些类,但无论如何它都在编译。但我得到了这种令人讨厌的红色字体颜色并加下划线。

此主题中没有任何解决方案适合我。

我的解决方案是在build.gradle中添加以下内容:

repositories {
    flatDir{
        dirs 'libs'
    }
}

当然,常见的(但默认情况下是这些行):

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}