在 Android Gradle 依赖中编译多个模块
Compile multiple modules in Android Gradle Dependency
我正在尝试使用 andEngine 及其 physicsBox2D 扩展创建一个应用程序。为此,我必须添加 2 个模块,然后在我的应用程序中编译 - andEngine
和 andEngine PhysicsBox2D
。我有以下 Gradle 代码 -
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 22
buildToolsVersion = "22.0.1"
defaultConfig.with {
applicationId = "com.sample.practice"
minSdkVersion.apiLevel = 9
targetSdkVersion.apiLevel = 22
versionCode = 1
versionName = "1.0"
}
}
android.buildTypes {
release {
minifyEnabled = false
proguardFiles += file('proguard-rules.pro')
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':andEnginePhysicsBox2D')
compile project(':andEngine')
}
但是这段代码给出了这个错误,而 运行 - ...java.exe finished with non zero exit value 2
如果我从 Gradle 中删除 compile project(':andEnginePhysicsBox2D')
,应用程序运行良好。
但是此代码对于应用程序的运行很重要。关于如何在 Gradle 的依赖项中实现 andEngine
和 andEngine PhysicsBox2D
的任何想法?
谢谢
PS - 我正在使用实验性的 Android Gradle 插件 V.0.2 和 Android Studio 1.3 一些NDK 的东西。
通过这个解决了问题-
1)andEngine中出现了一些问题,解决了这些错误。
2) 在 Gradle
.
中启用 multiDex
Box2d 扩展需要 AndEngine 模块作为它的依赖,你的项目也需要它们作为它的依赖。还应该注意的是,依赖关系的顺序 也很重要 。
所以你应该确保你有三个 gradle 配置如下的文件。
您的游戏gradle文件:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':andEngine')
compile project(':andEnginePhysicsBox2D')
}
AndEngine gradle 文件:
它没有任何依赖性。
Box2d 扩展 gradle 文件:
dependencies {
compile project(':andEngine')
}
我正在使用 Android Studio 1.2.2
以下脚本对我来说工作正常。
看看这是否有帮助?
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId 'com.xxxx.yyy'
minSdkVersion 8
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/gfx/'] } }
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.1.1'
compile project(':andengine')
compile project(':andenginebox2dextension')
}
我正在尝试使用 andEngine 及其 physicsBox2D 扩展创建一个应用程序。为此,我必须添加 2 个模块,然后在我的应用程序中编译 - andEngine
和 andEngine PhysicsBox2D
。我有以下 Gradle 代码 -
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 22
buildToolsVersion = "22.0.1"
defaultConfig.with {
applicationId = "com.sample.practice"
minSdkVersion.apiLevel = 9
targetSdkVersion.apiLevel = 22
versionCode = 1
versionName = "1.0"
}
}
android.buildTypes {
release {
minifyEnabled = false
proguardFiles += file('proguard-rules.pro')
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':andEnginePhysicsBox2D')
compile project(':andEngine')
}
但是这段代码给出了这个错误,而 运行 - ...java.exe finished with non zero exit value 2
如果我从 Gradle 中删除 compile project(':andEnginePhysicsBox2D')
,应用程序运行良好。
但是此代码对于应用程序的运行很重要。关于如何在 Gradle 的依赖项中实现 andEngine
和 andEngine PhysicsBox2D
的任何想法?
谢谢
PS - 我正在使用实验性的 Android Gradle 插件 V.0.2 和 Android Studio 1.3 一些NDK 的东西。
通过这个解决了问题-
1)andEngine中出现了一些问题,解决了这些错误。
2) 在 Gradle
.
multiDex
Box2d 扩展需要 AndEngine 模块作为它的依赖,你的项目也需要它们作为它的依赖。还应该注意的是,依赖关系的顺序 也很重要 。
所以你应该确保你有三个 gradle 配置如下的文件。
您的游戏gradle文件:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':andEngine') compile project(':andEnginePhysicsBox2D') }
AndEngine gradle 文件:
它没有任何依赖性。
Box2d 扩展 gradle 文件:
dependencies { compile project(':andEngine') }
我正在使用 Android Studio 1.2.2 以下脚本对我来说工作正常。
看看这是否有帮助?
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId 'com.xxxx.yyy'
minSdkVersion 8
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/gfx/'] } }
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.1.1'
compile project(':andengine')
compile project(':andenginebox2dextension')
}