Поддерживает ли Android Wear C ++ (JNI) в Android Studio?

Я не могу заставить проект Android Wear использовать C ++. Я могу получить проект «Телефон и планшет» для использования C ++. Вот что я сделал.

  1. Вот изображение инструментов SDK, которые я установил. У меня также установлены SDK API Уровни 24-27.

    SDK Инструменты

  2. Я создаю новый проект. Я проверяю «Включить поддержку C ++». Я проверяю «Износ» (API 26: Android 8.0 (Oreo)). Я выбираю «Далее» кучу.

  3. Для C ++ Standard я попробовал все три (Набор инструментов по умолчанию, C ++ 11, c ++ 14).

    • Я не проверяю -fexceptions или же -frtti,

В проекте, который создается в модуле «mobile», у меня есть папка «cpp», а в модуле «wear» — нет.

Если я создаю проект без поддержки «Телефон и планшет» («мобильный» модуль), то я все равно не получаю папку «cpp» в разделе «Износ».

Я пытался заставить проект использовать C ++ в модуле «wear». Вот что я сделал.

  1. Я модифицировал build.gradle (Модуль: носить), чтобы выглядеть так

    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. Я перезапускаю проект, который создает папку «cpp» под модулем «wear».

  3. Я создаю native-lib.cpp файл в папке «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. В моей яве onCreate() функцию я называю: stringFromJNIWatch(),

  5. Все строит без ошибок (зеленый молоток)

  6. Когда я запускаю проект (как носимое устройство), я получаю эту ошибку:

    Не найдена реализация для java.lang.String com.example.xorgaming.watchtestcpp.MainActivity.stringFromJNIWatch ()

Есть идеи, что я делаю не так? Android Wear поддерживает C ++?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]