10

我以前从未使用过 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
    }
}

提前致谢

4

6 回答 6

14

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

前:

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

后:

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

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

于 2013-05-21T12:13:59.420 回答
2

我有同样的问题。从 gradle-build 作为 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 的非默认值)

于 2013-09-05T12:23:42.103 回答
0

最近单独找到了更好的 SlidingMenu 解决方案:
如果您不需要对其进行任何更改,则可以将 SlidingMenu 添加为生成的@aar 文件。只需使用https://github.com/jzaccone/SlidingMenu-aar并在自述文件中进行更改。
小心回购的顺序。这个应该在上面mavenCentral()

于 2014-05-04T22:11:05.277 回答
0

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

apply plugin: 'android-library'

代替

apply plugin: 'android'
于 2013-10-30T16:41:31.350 回答
0

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

工具 -> Android -> 将项目与 Gradle 文件同步

于 2013-11-18T20:25:52.017 回答
0

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

于 2013-06-20T14:10:37.920 回答