Java – How do I add AndEngine and Box2D to Android Studio_

How do I add AndEngine and Box2D to Android Studio_… here is a solution to the problem.

How do I add AndEngine and Box2D to Android Studio_

I’ve tried following Google’s guide but it says to create a new empty module and there is no option in the latest version… What should I do? Thank you.

Solution

This is the entire tutorial on how to use the AndEngine and PhysicsBox2D extensions using Android Studio and Gradle. As long as Gradle doesn’t support native libraries, I’ll use the hack described here Android Studio Gradle with native libs error

My project structure is:
– Project root
– build.gradle
– Set .gradle
– Main projects
— Source code
— Resources
— Ider
– Modules
— and the engine
— Source
— Resources
— Library
—- Library .jar
— Build .gradle
— PhysicBox2D
— Source
— Resources
— Library
—- Library .jar
— Build .gradle
— Settings.gradle

In AndEngine and PhysicsBox2D, I put folders like armeabi, armeabi-v7, etc. into the lib folder, then zipped and renamed it to libs.jar. It is described in the link I provided above.

My main settings.gradle file looks like this

include 'Modules:AndEngine'
include 'Modules:PhysicBox2D'

And build.gradle

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

dependencies {
    compile project(':Modules:PhysicBox2D')
    compile project(':Modules:AndEngine')

}

task wrapper(type: Wrapper) {
    gradleVersion = '1.8'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19"

sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['MainProject/src']
            resources.srcDirs = ['MainProject/resources']
            aidl.srcDirs = ['MainProject/src']
            renderscript.srcDirs = ['MainProject/src']
            res.srcDirs = ['MainProject/res']
            assets.srcDirs = ['MainProject/assets']
        }

instrumentTest.setRoot('MainProject/tests')
    }

dependencies {

}

defaultConfig {
        ...
    }

signingConfigs {
        ...
    }

buildTypes {
        debug {
            ...
        }
        release {
            ...
        }
    }
}

Modules/PhysicBox2D/settings.gradle

include ':Modules:AndEngineGLES2'

Modules/PhysicsBox2D/build.gradle

buildscript {
    repositories {
        mavenCentral()
    }

dependencies {
        classpath 'com.android.tools.build:gradle:0.6.3'
    }
}

apply plugin: 'android-library'

dependencies {

compile project(':Modules:AndEngineGLES2')
        compile fileTree(dir: 'libs', include: 'libs.jar')
    }
    android {

buildToolsVersion "19"
    compileSdkVersion 19

defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
    }

repositories {
        mavenCentral()
    }

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

Modules/AndEngine/build.gradle

buildscript {
    repositories {
        mavenCentral()
    }

dependencies {
        classpath 'com.android.tools.build:gradle:0.6.3'
    }
}

apply plugin: 'android-library'

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

android {

buildToolsVersion "19"
    compileSdkVersion 19

defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
    }

repositories {
        mavenCentral()
    }

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

Everything works fine. I hope I have provided all the necessary information to make it work.

Related Problems and Solutions