android动态创建arraylist,使用Android本机代码创建arraylist

这篇博客讨论了一位Android-native新手在尝试使用C++创建ArrayList时遇到的错误。作者引用了包含错误的代码片段,代码中出现了'expected unqualified-id before string constant'的错误,并且在尝试解决该问题后又遇到了无法解析类型'T'的问题。博客内容侧重于Android原生代码与JNI的交互,以及模板类型的使用。
摘要由CSDN通过智能技术生成

如果这是一个重复的问题,请告诉我,不要downvote,我是

Android-native开发的新手.我想通过使用Android本机代码创建一个ArrayList,我尝试了以下内容:

#include

#include

#include

template

extern "C"{ //here it is showing **error expected unqualified-id before string constant**

std::vector list;

JNIEXPORT void JNICALL Java_com_example_nativetestapp_NativeList_add(

JNIEnv * env, jobject obj, T t) {

list.push_back(t);

}

JNIEXPORT jboolean JNICALL Java_com_example_nativetestapp_NativeList_remove(

JNIEnv * env, jobject obj, int pos) {

if (pos > list.size() - 1 || pos < 0)

return false;

return list.erase(list.begin() + pos) != NULL ? true : false;

}

JNIEXPORT jint JNICALL Java_com_example_nativetestapp_NativeList_size(

JNIEnv * env, jobject obj) {

return list.size() == NULL ? 0 : list.size();

}

JNIEXPORT jint JNICALL Java_com_example_nativetestapp_NativeList_get(

JNIEnv * env, jobject obj, int pos) {

return list[pos];

}

JNIEXPORT jboolean JNICALL Java_com_example_nativetestapp_NativeList_contains(

JNIEnv * env, jobject obj, T t) {

for (int var = 0; var < list.size(); var++) {

if(t==list[var])

return true;

}

return false;

}

JNIEXPORT jboolean JNICALL Java_com_example_nativetestapp_NativeList_remove(

JNIEnv * env, jobject obj, T t) {

for (int var = 0; var < list.size(); var++) {

if(t==list[var]){

list.erase(list.begin()+var);

return true;

}

}

return false;

}

};

但我仍然坚持代码中提到的错误.如果我之后放了一个分号

template;

然后在这一行后我得到一个新的错误:

cannot resolve T symbol.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值