Android Studio 2.3 CMake没有显示错误,也无法编译C ++代码

时间:2017-03-17 14:47:41

标签: android-studio cmake android-gradle nativelibrary android-studio-2.3

因此,我试图编写我的第一个本机库,以便在Android和iOS中重用我的C ++代码,但却无法让它在Android Studio 2.3下运行

我跟着instructions跟随信件(我希望),其中主要包括:

写一个包含(在我的例子中)的CMakeLists.txt文件:

cmake_minimum_required(VERSION 3.4.1)

add_library( 
         test-lib
         STATIC
         src/main/cpp/test.cpp
         src/main/cpp/cpp_wrapper.cpp)

include_directories(src/main/cpp/include/)
find_library( 
          log-lib
          log )

target_link_libraries(test-lib ${log-lib} )

add_library( app-glue
             STATIC
             ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c )

target_link_libraries( test-lib app-glue ${log-lib} )

然后将CMake文件链接到模块build.gradle文件

中的gradle
apply plugin: 'com.android.application'

android {


    compileSdkVersion 25
    buildToolsVersion '25.0.2'
    defaultConfig {
        applicationId 'com.mysample.id'
        minSdkVersion 19
        targetSdkVersion 25
        versionCode 9
        versionName "1.3.0"
    }
    buildTypes {
        release { ... }
    }

    productFlavors {
    }
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
}

repositories {
    maven { ... }
}
dependencies { ... }

这应该足够了。可悲的是它没有。 我无法弄清楚我在这里失踪了什么。 一次(实际上只有一次)我实际上收到了来自CMake的错误消息,因为在cpp文件中故意放置错字,但这是我从中看到的唯一的东西。没有库* .so文件被创建,当然没有与apk一起打包,因此应用程序一旦尝试加载它就会崩溃。

更新:我看错了地方,实际上有一些来自app / .externalNativeBuild / cmake的CMake的文件反映了构建配置和cpu架构,它们甚至包含一个test-lib.dir目录,但这是空的。我仔细查看了文件,看看是否有一些线索但是找不到任何有趣的东西。

欢迎任何建议!

1 个答案:

答案 0 :(得分:0)

最后,我创建了一个新项目,执行了所有指令(再次),将我已经存在的工作复制到新的工作中,瞧。

我们可能永远都不知道原因是什么......