Android Studio未在编译时检测支持库

由于Android Studio将成为Android开发的默认IDE,因此我决定将现有项目迁移到Android-studio。 项目结构似乎不同,我的项目中的文件夹层次结构如下:

Complete Project ->.idea -> build -> Facebook SDK -> MainProject -> ... (Other Libraries) build.gradle local.properties settings.gradle ... External Libraries -> Android API 8 Platform -> Android API 18 Platform -> Android API 19 Platform -> 1.7 Java -> support-v4-19.1.0 

我的MainProject有一个libs文件夹,其中包含项目中使用的不同jar。 令人惊讶的是它不包含我的eclipse项目中存在的android-support-v4 jar。 因此,似乎根目录下的外部Libraries文件夹必须处理它。

但是在导入之后,当我尝试编译项目时,开始为所有与android支持库相关的某些类抛出“Symbol not found error”。

例如:Android Studio中的自动完成function为我提供了来自android.support.v4.app.NotificationCompat的NotificaitonCompat的建议,但当我尝试编译我的项目模块时,它说

错误:(17,30)错误:找不到符号类NotificationCompat错误:任务’:app:compileDebugJava’执行失败。>编译失败; 请参阅编译器错误输出以获取详细信

对于同一个支持库,在许多其他类中也会发生这种情况。 我尝试插入一个jar并在mainProject的build.gradle中更改了相同的内容,但错误仍然存​​在。

我甚至尝试重新启动并再次构建项目,但没有任何改变。

编辑:我在主项目中附加Gradle文件

MainProject模块中的build.gradle

 apply plugin: 'com.android.application' android { compileSdkVersion 19 buildToolsVersion "21.1.2" defaultConfig { applicationId "package.app" minSdkVersion 8 targetSdkVersion 19 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } configurations { all*.exclude group: 'com.android.support', module: 'support-v4' } dependencies { compile project(':facebookSDK') compile project(':library') compile project(':volley') compile 'com.google.android.gms:play-services:+' compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' compile 'com.android.support:support-v4:19.1.0' compile files('libs/FlurryAnalytics_3.3.3.jar') compile files('libs/universal-image-loader-1.8.4.jar') .... } 

这部分构建文件:

 configurations { all*.exclude group: 'com.android.support', module: 'support-v4' } 

告诉构建系统忽略support-v4,这就是它不编译的原因。 删除它。

在您的构建文件中,您有这个,这是包含支持的正确方法:

 compile 'com.android.support:support-v4:19.1.0' 

如果您的任何模块的libs目录中有支持库jar文件,请将其删除并确保以这种方式引用它 – 如果您将库包含在jar中,则可能会遇到问题jar被多次包含,这将导致dex错误。

如果您在’libs’目录中有jar文件,则可以在build.gradle文件中指定它:

 dependencies{ compile fileTree(dir: 'libs', include: ['*.jar'] compile 'com.android.support:support-v4:21.0.3' //to automatically add up-to-date support lib } 

希望这可以帮助!