我正在使用AndroidStudio1.3,启用了实验NDK插件。我已经将整个Box2d文件夹与Android.mk和Application.mk一起放到了android中的jni文件夹中。Android似乎完全忽略了.mk文件,因为当我改变它们时,什么都不会发生。不管怎么说,当我得到了directoy而不是找到的错误时,我正在尝试编译Box2d。Error:(19, 42) Box2D/Collision/b2BroadPhase.h: No such file or directory。
Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= liquidfun
LOCAL_C_INCLUDES := $(LOCAL_PATH)/Box2D/Collision \
$(LOCAL_PATH)/Box2D/Collision/Shapes \
$(LOCAL_PATH)/Box2D/Common \
$(LOCAL_PATH)/Box2D/Dynamics \
$(LOCAL_PATH)/Box2D/Dynamics/Contacts \
$(LOCAL_PATH)/Box2D/Dynamics/Joints \
$(LOCAL_PATH)/Box2D/Dynamics/Particle \
$(LOCAL_PATH)/Box2D/Rope
include $(BUILD_SHARED_LIBRARY)build.gradle
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 21
buildToolsVersion = "22.0.1"
defaultConfig.with {
applicationId = "com.mycompany.mygame"
minSdkVersion.apiLevel = 15
targetSdkVersion.apiLevel = 21
versionCode = 1
versionName = "1.0"
}
}
android.buildTypes {
release {
minifyEnabled = false
proguardFiles += file('proguard-rules.pro')
}
}
android.ndk {
moduleName = "liquidfun"
}
}
def liquidFunDir = new File("${projectDir}/src/main/java/com/google/fpl/liquidfun")
task createLiquidFunDir {
liquidFunDir.mkdirs()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
}任何提示都将不胜感激。谢谢。
发布于 2015-08-20 05:34:30
嘿,我有个类似的问题。gradle插件不尊重您的Android.mk文件。它为您的项目创建临时Android.mk。
要在新的实验性android插件中添加标记:
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 21
buildToolsVersion = "22.0.1"
defaultConfig.with {
applicationId = "com.mycompany.mygame"
minSdkVersion.apiLevel = 15
targetSdkVersion.apiLevel = 21
versionCode = 1
versionName = "1.0"
}
}
android.buildTypes {
release {
minifyEnabled = false
proguardFiles += file('proguard-rules.pro')
}
}
android.ndk {
CFlags += "-I${projectDir}/src/main/jni/Box2D/Collision".toString()
CFlags += "-I${projectDir}/src/main/jni/Box2D/Collision/Shapes".toString()
CFlags += "-I${projectDir}/src/main/jni/Box2D/Dynamics".toString()
CFlags += "-I${projectDir}/src/main/jni/Box2D/Dynamics/Contacts".toString()
CFlags += "-I${projectDir}/src/main/jni/Box2D/Dynamics/Joints".toString()
CFlags += "-I${projectDir}/src/main/jni/Box2D/Dynamics/Particle".toString()
CFlags += "-I${projectDir}/src/main/jni/Box2D/Rope".toString()
cppFlags += "-I${projectDir}/src/main/jni/Box2D/Collision".toString()
cppFlags += "-I${projectDir}/src/main/jni/Box2D/Collision/Shapes".toString()
cppFlags += "-I${projectDir}/src/main/jni/Box2D/Dynamics".toString()
cppFlags += "-I${projectDir}/src/main/jni/Box2D/Dynamics/Contacts".toString()
cppFlags += "-I${projectDir}/src/main/jni/Box2D/Dynamics/Joints".toString()
cppFlags += "-I${projectDir}/src/main/jni/Box2D/Dynamics/Particle".toString()
cppFlags += "-I${projectDir}/src/main/jni/Box2D/Rope".toString()
moduleName = "liquidfun"
}
}
def liquidFunDir = new File("${projectDir}/src/main/java/com/google/fpl/liquidfun")
task createLiquidFunDir {
liquidFunDir.mkdirs()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
}@ph0b (https://stackoverflow.com/a/31365158/5105445)发布了一个答案,使得不可能在任何<棒棒糖上运行。
希望它能帮上忙
发布于 2015-08-19 10:49:20
您想在windows中编译吗?如果是这样,请在Android.mk中使用"\“而不是"/”,如下所示:$(LOCAL_PATH)\Box2D\Common \
如果这无助于在"build.gradle“文件中指定如下所示的包含:
android.ndk {
moduleName ="liquidfun"
CFlags += "-I${file("src/main/jni/Box2D/Collision")}".toString()
}https://stackoverflow.com/questions/32084727
复制相似问题