首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Android上设置SuperPowered SDK

如何在Android上设置SuperPowered SDK
EN

Stack Overflow用户
提问于 2017-09-02 13:43:27
回答 1查看 697关注 0票数 2

通过阅读SuperPowered SDK GitHub页面上的自述文件,我注意到要让它在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 (Module: app),并更改applicationId

我已经完成了所有这些,但是当我试图与gradle同步我的项目时,我会得到以下错误消息:

错误:(34,0)在com.android.build.gradle.internal.dsl.CmakeOptions.类型的对象上找不到参数-DANDROID_PLATFORM=android-16、-DANDROID_TOOLCHAIN=clang、-DANDROID_ARM_NEON=TRUE、-DANDROID_STL=gnustl_static、-DPATH_TO_SUPERPOWERED:STRING=null的方法参数()打开文件

这就是我的应用程序/build.gradle的样子:

代码语言:javascript
运行
复制
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文件

代码语言:javascript
运行
复制
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
)
EN

回答 1

Stack Overflow用户

发布于 2018-06-08 07:11:09

我有一个非常相似的配置(因为它继承了默认的建议配置),但发现了一些不同之处。

您提供的cmake配置如下:

代码语言:javascript
运行
复制
externalNativeBuild {
    cmake {
        path 'src/main/jni/CMakeLists.txt'
    }
}

但据我所知,您将其保存为"cmake.txt“,但从未链接或找到。

将cmake.txt重命名为CMakeLists.txt是否有帮助?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46014432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档