gpt4 book ai didi

android - Android Wear 是否支持 Android Studio 中的 C++ (JNI)?

转载 作者:行者123 更新时间:2023-12-05 07:36:45 25 4
gpt4 key购买 nike

我无法让 Android Wear 项目使用 C++。我能够获得一个使用 C++ 的“手机和平板电脑”项目。这是我所做的。

  1. 这是我安装的 SDK 工具的图像。我还安装了 SDK API 级别 24-27。

    SDK Tools

  2. 我创建了一个新项目。我选中“包括 C++ 支持”。我检查“磨损”(API 26:Android 8.0(奥利奥))。我多次选择“下一步”。

  3. 对于 C++ 标准,我已经尝试了所有三个(默认工具链、C++11、C++14)。

    • 我不检查 -fexceptions-frtti

在“mobile”模块下创建的项目中,我有一个“cpp”文件夹,但在“wear”模块下没有。

如果我创建一个没有“手机和平板电脑”支持的项目(“移动”模块),那么我仍然没有在“磨损”模块下获得“cpp”文件夹。

我尝试强制项目在“wear”模块下使用 C++。这是我所做的。

  1. 我修改了 build.gradle(模块:wear)看起来像这样

    apply plugin: 'com.android.application'

    android {
    compileSdkVersion 26
    defaultConfig {
    applicationId "com.example.xorgaming.watchtestcpp"
    minSdkVersion 25
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    externalNativeBuild {
    cmake {
    cppFlags "-std=c++11"
    }
    }
    }
    buildTypes {
    release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    }
    externalNativeBuild {
    cmake {
    path "CMakeLists.txt"
    }
    }
    }

    dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.android.support:wearable:2.2.0'
    implementation 'com.google.android.gms:play-services-wearable:11.8.0'
    implementation 'com.android.support:percent:26.1.0'
    implementation 'com.android.support:support-v4:26.1.0'
    implementation 'com.android.support:recyclerview-v7:26.1.0'
    implementation 'com.android.support:wear:26.1.0'
    compileOnly 'com.google.android.wearable:wearable:2.2.0'
    }
  2. 我重新启动了在“wear”模块下创建“cpp”文件夹的项目。

  3. 我在“cpp”文件夹中创建了一个 native-lib.cpp 文件。它看起来像这样:

    extern "C"
    JNIEXPORT jstring JNICALL Java_com_example_xorgaming_watchtestcpp_MainActivity_stringFromJNIWatch(
    JNIEnv *env, jobject /* this */)
    {
    std::string hello = "Hello from C++ WATCH!";
    return env->NewStringUTF(hello.c_str());
    }
  4. 在我的 java onCreate() 函数中,我调用:stringFromJNIWatch()

  5. 一切构建无误(绿色锤子)

  6. 当我运行该项目(作为可穿戴设备)时出现此错误:

    No implementation found for java.lang.String com.example.xorgaming.watchtestcpp.MainActivity.stringFromJNIWatch()

知道我做错了什么吗? Android Wear 是否支持 C++?

最佳答案

自发布此问题以来,情况发生了很大变化。但一半的答案是:是的,您可以将 C++ 和 Java 与 Wear OS 一起使用。对于 Android 应用程序,您可以遵循相同的说明。

至于失败的原因,我的建议是仔细检查路径。如果您按照说明 here你会注意到 cpp目录与 java 目录位于同一目录中。通常类似于 MyApplication/app/src/main将有一个java目录和一个cpp目录。这有助于将所有内容都包含在最终的 .apk 中。

关于android - Android Wear 是否支持 Android Studio 中的 C++ (JNI)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48996541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com