android - 实现ActionBarSherlock,gradle错误

标签 android dependencies actionbarsherlock gradle android-studio

我是 Android 开发的初学者,目前非常执着于实现 actionbarsherlock。我知道以前已经讨论过这一点,但我对依赖关系以及如何设置项目结构感到非常困惑。我尝试按照所有说明进行操作,但没有成功。我一直在使用 gradle 时遇到不同的问题。我使用的是 Android Studio 0.2.0。

我当前的错误是:

>Gradle 'MyAppProject' project refresh failed:
>Could not fetch model of type 'IdeaProject' using Gradle distribution "http://services.gradle.org/distributions/gradle-1.6-bin.zip".
>Error: Gradle: A problem occurred configuring project ':MyApp'.
>Failed to notify project evaluation listener.
>A problem occurred configuring project ':Libraries:ActionBarSherlock'.
>Failed to notify project evaluation listener.
>Main Manifest missing from C:\Users\JJ2\AndroidStudioProjects\MyAppProject\Libraries\ActionBarSherlock\src\main\AndroidManifest.xml

我的项目构建如下:

-MyAppProject
|+.idea
|+gradle
|-Libraries
||-ActionBarSherlock
|||+gen
|||+libs
|||+res
|||-src
||||-android.support.v4.app
|||||-Watson
||||+com.actionbarsherlock
|||-ActionBarSherlock.iml
|||-AndroidManifest.xml
|||-build.gradle
|||-lint.xml
|||-pom.xml
|||-project.properties
|||-README.md
|-MyApp
||+build
||+libs
||-src
|||-main
||||-java
|||||+com.mywebsite.myapp
||||+res
||||-AndroidManifest.xml
||||-ic_launcher-web.png
||-build.gradle
||-MyApp.iml
|-build.gradle
|-gradlew
|-gradlew.bat
|-local.properties
|-settings.gradle
|-MyAppProject.iml
-External Libraries
|-<Android 4.2.2>
||+android.jar
||+annotations.jar
||+res

MyAppProject目录下build.gradle的内容:

task assemble{}

MyApp目录下的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.0'
    }
}
apply plugin: 'android'

dependencies {
    compile project(":Libraries:ActionBarSherlock")
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 17
    }
}

以及Libraries\ActionBarSherlock目录中的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.0'
    }
}
apply plugin: 'android-library'

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

}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 17
    }
}

最后,我的项目结构如下:

模块

-ActionBarSherlock (Dependencies: Android 4.2.2, [v]android-support-v4)
    -Android
-MyApp             (Dependencies: Android 4.2.2, [ ]ActionBarSherlock)
    -Android
    -Android-Gradle
-MyAppProject      (Dependencies: Android 4.2.2)
    -Android-Gradle

图书馆

None

全局图书馆

-android-support-v4 (Classes: ...\MyAppProject\MyApp\libs\android-support-v4.jar)

我希望有人能够注意到代码中的任何问题,尽管自从新的 Android Studio 发布以来很多人似乎已经解决了问题。 提前致谢!

最佳答案

顶级目录settings.gradle:

include ':MyApp', ':Libraries:ActionBarSherlock'

包含您可能输入到项目中的任何其他库

顶级目录build.gradle: 任务组装没问题{}

操作栏 sherlock build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android-library'

dependencies {
    compile 'com.android.support:support-v4:13.0.0'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }
}

此外,在设置了 gradle 版本的所有 .gradle 文件中: 将所有 gradle 版本替换为:

classpath 'com.android.tools.build:gradle:0.5.+'

Android Studio 2.x 使用 gradle 0.5.x,通过使用 + 您将使 gradle 保持最新(他们在 2 天前更新了它,而我们更新频繁!!)

你的 gradle 设置现在就可以了! 注1: iml./idea 文件可能会出现任何其他错误...您可以尝试在 Studio 的项目设置中更改它们,例如为每个模块(sherlock、MyApp)及其库等设置源文件!

注2: 此外,如果您正在使用其他一些库,这需要比您的应用程序更高版本的 SDK,您可能会收到错误,没有解释!

关于android - 实现ActionBarSherlock,gradle错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17643084/

相关文章:

dependencies - AWS CloudFormation 不遵守隐式依赖关系

java - 无法在 ActionBarSherlock 中创建选项菜单

android - OpenCV - RTSP 流损坏的宏 block

rust - 如何在 Cargo.toml 中包含未发布的依赖项/库?

android - 检查url是否被缓存webview android

java - 集成 Maven、Tycho 和 Eclipse 时处理非 OSGi 依赖项

Android:ShareActionProvider 的自定义 XML

android - ActionbarSherlock 在 Android 中按 keydown 单击设备菜单上打开子菜单

android - 如何在 Android 中不使用 webview 显示网页

android - View 不能锚定到父 CoordinatorLayout