【问题标题】:Implementing ActionBarSherlock, gradle error实现 ActionBarSherlock,gradle 错误
【发布时间】:2013-07-12 15:48:56
【问题描述】:

我是 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 发布以来,很多人似乎都已经解决了问题。 提前致谢!

【问题讨论】:

    标签: android dependencies actionbarsherlock gradle android-studio


    【解决方案1】:

    顶级目录 settings.gradle:

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

    包括您可以输入到项目中的任何其他库

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

    Actionbar 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,您可能会收到错误,没有解释!

    【讨论】:

    • 非常感谢您的回复!我忘了包括 settings.gradle 内容,就像你描述的那样。其他的评论可能确实是必要的。不幸的是,我开始弄乱项目设置-> Gradle,现在我不断收到一条错误消息:Gradle 'WallPainterProject' 项目刷新失败:无法从'services.gradle.org/distributions/gradle-1.6-bin.zip' 安装 Gradle 发行版。 Gradle 分发 'C:\Users\JJ2\.gradle\wrapper\dists\gradle-1.6-bin\72srdo3a5eb3bic159kar72vok' 包含太多目录。预计准确找到 1 个目录。
    • 我似乎找不到正确设置 gradle 属性的示例。如果您或其他人可以发布一个正常设置和 gradle 所在目录的示例,我将不胜感激。我会给你+1,但我自己还没有收集足够的业力哈哈。
    • 不客气!要进行正常设置,只需创建一个新的空项目,其中包含我在上面发布的 .gradle 更改。我在安装 gradle 时遇到了一些问题(它没有完全下载 gradle 二进制文件)......我去了你写的那个目录,并删除了一些锁和损坏的文件!到这里:services.gradle.org/distributions/gradle-1.6-bin.zip,下载,到gradle1.6-bin/72 ..../目录,然后粘贴,解压!现在可以用了吗?
    • 好吧,我刚刚删除了所有内容并重新安装了 android studio,现在 gradle 错误消失了:)。但是,当我尝试在手机上运行该应用程序时,我收到“安装解析失败的不一致证书”错误,即使我已经从那里删除了该应用程序。有什么想法吗?
    • 显然该应用程序已不在应用程序抽屉中,但仍在设置->应用程序中。不管怎样,我做了你告诉我的一切,一切都成功了!再次感谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    相关资源
    最近更新 更多