将Android项目添加为库(SlidingMenu)的Gradle错误

我之前从未使用过Gradle,所以我完全迷失了!

我已经添加了SlidingMenu作为库,我可以从我的项目访问所有SlindingMenu的东西,但是尝试编译会给我这个错误:

Gradle: package com.jeremyfeinstein.slidingmenu.lib does not exist 

我正在使用Android Studio(所以IntelliJ),这是我的gradle.build

 buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 17 } } 

提前致谢

假设您已将SlidingMenu.jar添加到libs文件夹中,右键单击它 – >添加为库。 然后在gradle.build中更改:

之前:

 dependencies { compile files('libs/android-support-v4.jar') } 

后:

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

这将包括您的所有jar文件。

我有同样的问题。 使用gradle-build添加slide-menu-lib作为android库确实对我有帮助。

我的项目结构如下:

 -MyDemoProject -build.gradle -settings.gradle --MyDemo --build.gradle --libs ---sliding-menu-lib ----res ----src ----AndroidManifest.xml ----build.gradle --src 

要使所有的东西都在你的settings.bundle应该有这个内容:

 include ':MyDemo' ':MyDemo:libs:sliding-menu-lib' 

这里有一个技巧,它允许您在使用Android Studio使用gradle构建项目时避免错误,因为根据Android工具手册,您应该使用':libs:sliding-menu-lib'但由于相对projectDir的问题而无效路径 。

您的MyDemo/build.gradle应包含以下依赖项:

 dependencies { compile 'com.android.support:support-v4:18.0.0' ... compile fileTree(dir: 'libs', include: '*.jar') compile project(':MyDemo:libs:sliding-menu-lib') } 

你的sliding-menu-lib/build.gradle应该是这样的:

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android-library' android { compileSdkVersion 14 buildToolsVersion "18.0.1" defaultConfig { minSdkVersion 9 targetSdkVersion 14 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } } dependencies { compile 'com.android.support:support-v4:18.0.0' } 

最重要的部分涉及sourceSets部分,因为您可能不希望更改sliding-menu-lib文件结构(当前gradle的非默认值)

我使用源工具的默认导入添加了以前的所有库。 对于SlidingMenu,我使用Maven导入,然后从SlidingMenu的项目设置中删除了所有Maven依赖项,并重新导入了支持库。 这似乎清除了大多数问题。

如果模块只是一个库而不是一个独立的应用程序,那么它的gradle应该包含

 apply plugin: 'android-library' 

代替

 apply plugin: 'android' 

您可以使用Gradle文件同步项目

工具 – > Android – >使用Gradle文件同步项目

最近发现了SlidingMenu的更好解决方案:
如果您不需要对其生成任何更改,可以将SlidingMenu添加为生成的@aar文件。 只需使用https://github.com/jzaccone/SlidingMenu-aar并按照自述文件进行更改。
请注意回购的顺序。 这个应该在mavenCentral()之上