Search code examples
actionbarsherlockgradleandroid-studiobuild.gradle

How to configure build.gradle files of an existing project with actionbarsherlock lib?


I have an existing project MyProject in eclipse that use the library actionbarsherlock (version 4.3.1). The project compiles and runs in android studio, but I don't get build variants. Please help!

Here is setting.gradle and build.gradle of my root folder (project_workspace):

// setting.gradle:
include ':MyProject'
include ':actionbarsherlock'

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

build.gradle of myProject:

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

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':C::Users:<myname>:project_workspace:actionbarsherlock')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    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')
    }

}

build.gradle of actionbarsherlock:

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

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

android {
    compileSdkVersion 14
    buildToolsVersion "17.0.0"

    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')
    }
}

I also read a lot of question and answers here, and I looked at the gradle samples, but I don't get it. Please help me, I never worked with maven or ant before! If you need more information -> tell me.


Solution

  • I have working project with libs like this:

    Root folder:

    settings.gradle:

    include ':JazzyListView', ':ABS', ':Volley',':WallCP'
    

    build.gradle: empty

    ABS folder:

    build.gradle:

    buildscript {
        repositories {
            mavenCentral()
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:0.4.2'
        }
    }
    
    apply plugin: 'android-library'
    
    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
    }
    
    android {
        compileSdkVersion 17
        buildToolsVersion "17.0.0"
    
        sourceSets {
            main {
                manifest.srcFile 'AndroidManifest.xml'
                java.srcDirs = ['src']
                resources.srcDirs = ['src']
                aidl.srcDirs = ['src']
                renderscript.srcDirs = ['src']
                res.srcDirs = ['res']
                assets.srcDirs = ['assets']
            }
        }
    }
    

    Main project's folder:

    build.gradle:

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.4.2'
        }
    }
    apply plugin: 'android'
    
    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        compile project(':JazzyListView')
        compile project(':ABS')
        compile project(':Volley')
    }
    
    android {
        compileSdkVersion 17
        buildToolsVersion "17.0.0"
    
        defaultConfig {
            versionCode 5
            versionName "3.0"
            minSdkVersion 8
            targetSdkVersion 17
        }
    
        sourceSets {
            main {
                manifest.srcFile 'src/main/AndroidManifest.xml'
                java.srcDirs = ['src/main/java']
                res.srcDirs = ['src/main/res']
            }
        }
    
    
    }