#include <jni.h>#include <androID/log.h>#include <vector>template<class T>extern "C"{ //here it is showing **error expected unqualifIEd-ID before string constant**std::vector<T> 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,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,int pos) {return List[pos]; }JNIEXPORT jboolean JNICALL Java_com_example_nativetestapp_NativeList_contains( jnienv * env,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,T t) {for (int var = 0; var < List.size(); var++) { if(t==List[var]){ List.erase(List.begin()+var); return true; } } return false;}};
但我仍然坚持代码中提到的错误.如果我之后放了一个分号
template<class T>;
然后在这一行后我得到一个新的错误:
解决方法 在每个JNIEXPORT之前添加extern“C”,而不是包装所有代码. 总结cannot resolve T symbol.
以上是内存溢出为你收集整理的使用Android本机代码创建arraylist全部内容,希望文章能够帮你解决使用Android本机代码创建arraylist所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)