如何在Android上设置超级强大的SDK
通过阅读页面上的自述,我注意到要让它在Android上运行,您需要: 在项目文件夹中创建jni文件夹:app/src/main/jni 从示例之一复制以下文件的内容 项目:gradle/wrapper/gradle-wrapper.properties、local.properties、, build.gradle,app/build.gradle,app/src/main/jni/CMakeLists.txt打开 build.gradle(模块:app),并更改applicationId 我已经完成了所有这些,但当我尝试将我的项目与gradle同步时,仍然会收到以下错误消息: 错误:(34,0)在com.android.build.gradle.internal.dsl.CmakeOptions类型的对象上找不到参数[-DANDROID\u PLATFORM=android-16,-DANDROID\u TOOLCHAIN=clang,-DANDROID\u ARM\u NEON=TRUE,-DANDROID\u STL=gnustl\u static,-DPATH\u TO\u SUPERPOWERED:STRING=null]的方法参数()。 打开文件 这就是我的app/build.gradle的样子:如何在Android上设置超级强大的SDK,android,gradle,superpowered,Android,Gradle,Superpowered,通过阅读页面上的自述,我注意到要让它在Android上运行,您需要: 在项目文件夹中创建jni文件夹:app/src/main/jni 从示例之一复制以下文件的内容 项目:gradle/wrapper/gradle-wrapper.properties、local.properties、, build.gradle,app/build.gradle,app/src/main/jni/CMakeLists.txt打开 build.gradle(模块:app),并更改applicationId 我已
apply plugin: 'com.android.application'
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def superpowered_sdk_path = properties.getProperty('superpowered.dir')
android {
signingConfigs {
dancam_dev_key {
keyAlias ######
keyPassword ######
storeFile file('/Users/daniele/Desktop/Chords/#####')
storePassword ########
}
}
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId #####
minSdkVersion 21
targetSdkVersion 26
versionCode 17
versionName "2.1"
signingConfig #######
multiDexEnabled true
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' // these platforms cover 99% percent of all Android devices
}
}
externalNativeBuild {
cmake {
arguments '-DANDROID_PLATFORM=android-16', '-DANDROID_TOOLCHAIN=clang', '-DANDROID_ARM_NEON=TRUE', '-DANDROID_STL=gnustl_static', "-DPATH_TO_SUPERPOWERED:STRING=${superpowered_sdk_path}"
cFlags '-O3', '-fsigned-char' // full optimization, char data type is signed
cppFlags '-fsigned-char', "-I${superpowered_sdk_path}"
}
}
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
dataBinding {
enabled = true
}
}
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jni']
}
}
externalNativeBuild {
cmake {
path 'src/main/jni/CMakeLists.txt'
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
....
}
编辑:
这是cmake.txt
文件
cmake_minimum_required(VERSION 3.4.1)
set(
PATH_TO_SUPERPOWERED
CACHE STRING ""
)
message(${ANDROID_ABI})
file(GLOB CPP_FILES "*.cpp")
add_library(
SuperpoweredExample
SHARED
${CPP_FILES}
${PATH_TO_SUPERPOWERED}/AndroidIO/SuperpoweredAndroidAudioIO.cpp
)
include_directories(src/main/jni)
include_directories(${PATH_TO_SUPERPOWERED})
target_link_libraries(
SuperpoweredExample
log
android
OpenSLES
${PATH_TO_SUPERPOWERED}/libSuperpoweredAndroid${ANDROID_ABI}.a
)
我有一个非常相似的配置(因为它继承了默认的建议配置),但发现了一些差异 您可以按如下方式提供cmake配置:
externalNativeBuild{
克马克{
路径'src/main/jni/CMakeLists.txt'
}
}
您正在使用Android 16 SDK吗<代码>-DANDROID_平台。。。您是否应该将该值更改为compileSdk版本?@cricket\u 007谢谢您的建议。将其更改为android-26。错误仍然存在,尽管如此。我没有读到错误<代码>找不到方法参数。因此,您使用的是另一个版本的Gradle不知道如何externalNativeBuild cmake
works@cricket_007请看编辑后的问题。我已经添加了我的cmake \需要的不是你的cmake。显然是Gradle软件在检测你是否有一个Makefile