2

我正在尝试从我的项目中的另一个 Android 库中引用 ActionBarSherlock。我收到此错误:

package com.actionbarsherlock.app does not exist

这是我的项目结构

MyApplication
|---app
\---libraries
    |---ActionBarSherlock
    |---AndroidCommon
    \---AndroidUtils

这是我的settings.gradle

// App
include ':app'

// Libraries
include ':libraries:ActionBarSherlock:actionbarsherlock'
include ':libraries:AndroidCommon'
include ':libraries:AndroidUtils'

这是ABS的build.gradle

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

apply plugin: 'android-library'

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

android {
    compileSdkVersion 17
    buildToolsVersion '17.0.0'

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            res.srcDirs = ['res']
        }
    }
}

以及AndroidCommon的 build.gradle

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

apply plugin: 'android-library'

dependencies {
    compile 'com.android.support:support-v4:13.0.0'
    compile project(':libraries:ActionBarSherlock:actionbarsherlock')
    compile project(':libraries:AndroidUtils')
}

android {
    compileSdkVersion 17
    buildToolsVersion '17.0.0'
}

不支持此设置,还是我做错了什么?ActionBarSherlock 和 AndroidUtils 使用 Gradle 构建得很好。只有当我尝试引用 AndroidCommon 中的那些时,它才会失败。

4

1 回答 1

2

似乎没有为 ABS 构建/打包 classes.jar,但资源构建得很好。此外,AndroidUtils 中的所有内容都可以正常构建,包括 classes.jar。

手动将 classes.jar 复制到展开的 bundles 目录后,构建成功。出于某种原因,Gradle 没有复制此文件。

更新:

不知何故,核对项目并重新克隆 repo 修复了 gradle 构建。

于 2013-07-07T22:45:23.947 回答