Отправьте значение C в android ndk и получите образец (если) ответа - PullRequest
0 голосов
/ 11 марта 2020

я пишу этот код в моей android деятельности, чтобы отправить запрос на C в android ndk:

Toast.makeText(getApplicationContext(),Calculate("1")+"",Toast.LENGTH_SHORT).show();

public native String Calculate(String j_key_name);

и на стороне ndk в C файле я пишу этот код:

JNIEXPORT jstring JNICALL
Java_org_sample_aguar_NActivity_Calculate(JNIEnv *env, jobject thiz, jstring j_key_name) {

    if (j_key_name == "1") {
        return (*env)->NewStringUTF(env, " its 1 ");
    } else{
        return (*env)->NewStringUTF(env, " it's not 1 ");
    }
}

У меня нет ошибок, но всегда выполняется другая часть, и когда я отправляю «1» в ответ, я получаю (это не 1).

1 Ответ

2 голосов
/ 11 марта 2020

Я написал простую программу if-else на c. Я использую библиотеку String.h и работаю правильно.

#include<string.h>
char j_key_name[] ="1";

int check = strcmp(j_key_name, "1");
if (check == 0) {
    printf("if");
} else{
    printf("else");
}

Давайте попробуем код выше. Надеюсь, решить вашу проблему. Заранее спасибо.

...