Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JNI在c++;_Java_Android_Java Native Interface - Fatal编程技术网

Java JNI在c++;

Java JNI在c++;,java,android,java-native-interface,Java,Android,Java Native Interface,我正在为android开发同一个应用程序,我受到堆限制,因此我想在JNI中创建列表,并使用该双列表以相同的速率将行(一些float[]流到表中的新行),最后只为其他员工生成float[][]矩阵。但是函数addtotable在CallBooleanMethod上崩溃了,但是我检查了我插入的值是否正确,那么我的错误在哪里呢?我将感谢你的帮助。谢谢 #include <cstring> #include <jni.h> #include <cinttypes> #

我正在为android开发同一个应用程序,我受到堆限制,因此我想在JNI中创建列表,并使用该双列表以相同的速率将行(一些float[]流到表中的新行),最后只为其他员工生成float[][]矩阵。但是函数addtotable在CallBooleanMethod上崩溃了,但是我检查了我插入的值是否正确,那么我的错误在哪里呢?我将感谢你的帮助。谢谢

#include <cstring>
#include <jni.h>
#include <cinttypes>
#include <string>
#include <android/log.h>

#define LOG(...) \
  ((void)__android_log_print(ANDROID_LOG_INFO, "hash-table::", __VA_ARGS__))

extern "C" JNIEXPORT jobject JNICALL
Java_com_example_core_data_HashTable_AllocateHashTable(JNIEnv* env, jobject obj, jint columns, jint rows)
{
    // java.util.List;
    jclass arrayClass  = env->FindClass("java/util/ArrayList");
    jmethodID init = env->GetMethodID(arrayClass, "<init>", "(I)V");
    jmethodID add = env->GetMethodID(arrayClass, "add", "(Ljava/lang/Object;)Z");

    jobject array2D = env->NewObject(arrayClass, init, columns);
    for (jint i = 0; i < columns; i++)
    {
        jobject array1D = env->NewObject(arrayClass, init, rows);
        env->CallBooleanMethod(array2D, add, array1D);
        env->DeleteLocalRef(array1D);
    }

    return array2D;
}

extern "C" JNIEXPORT void JNICALL
Java_com_example_core_data_HashTable_AddToTable(JNIEnv* env, jobject obj, jobject array2D, jfloatArray data)
{
    // java.util.List;
    jclass arrayClass = env->FindClass("java/util/ArrayList");
    jmethodID get = env->GetMethodID(arrayClass, "get", "(I)Ljava/lang/Object;");
    jmethodID add = env->GetMethodID(arrayClass, "add", "(Ljava/lang/Object;)Z");

    jfloat *buf = env->GetFloatArrayElements(data, nullptr);
    jsize len = env->GetArrayLength(data);

    for (int i = 0; i < len; i++)
    {
        jobject array1D = env->CallObjectMethod(array2D, get, i);
        env->CallBooleanMethod(array1D, add, buf[i]);
        env->DeleteLocalRef(array1D);
    }
}

extern "C" JNIEXPORT jobjectArray JNICALL
Java_com_example_core_data_HashTable_TableToFrame(JNIEnv* env, jobject obj, jobject array2D, jint capacity)
{
    jclass arrayClass = env->FindClass("java/util/ArrayList");
    jmethodID get = env->GetMethodID(arrayClass, "get", "(I)Ljava/lang/Object;");
    jmethodID size = env->GetMethodID(arrayClass, "size", "()I");
    //jmethodID array = env->GetMethodID(arrayClass, "toArray", "()[Ljava/lang/Object;");

    jobjectArray frame = env->NewObjectArray(capacity, env->FindClass("[F"), NULL);

    int height = env->CallIntMethod(array2D, size);
    for (int i = 0; i < height; i++)
    {
        jobject row = env->CallObjectMethod(array2D, get, i);
        int width = env->CallIntMethod(row, size);

        auto *data = new jfloat[width];
        for (int j = 0; j < width; j++)
        {
            data[j] = env->CallFloatMethod(row, get, j);
        }

        jfloatArray inner = env->NewFloatArray(width);
        env->SetFloatArrayRegion(inner, 0, width, data);
        env->SetObjectArrayElement(frame, i, inner);
        delete data;

        env->DeleteLocalRef(inner);
        env->DeleteLocalRef(row);
    }

    return frame;
}
#包括
#包括
#包括
#包括
#包括
#定义日志(…)\
((无效)uuu android_u日志_u打印(android_u日志_u信息,“哈希表::”,uuu VA_uargs_uuu))
外部“C”JNIEXPORT作业对象JNICALL
Java_com_示例_core_data_HashTable_AllocateHashTable(JNIEnv*env、jobject obj、jint列、jint行)
{
//java.util.List;
jclass arrayClass=env->FindClass(“java/util/ArrayList”);
jmethodID init=env->GetMethodID(arrayClass,”,“(I)V”);
jmethodID add=env->GetMethodID(arrayClass,“add”,“(Ljava/lang/Object;)Z);
jobject array2D=env->NewObject(arrayClass、init、columns);
对于(jint i=0;iNewObject(arrayClass、init、rows);
env->CallBooleanMethod(array2D,add,array1D);
env->DeleteLocalRef(array1D);
}
返回阵列2d;
}
外部“C”JNIEXPORT void JNICALL
Java_com_示例_core_data_HashTable_AddToTable(JNIEnv*env、jobject obj、jobject array2D、jfloatArray data)
{
//java.util.List;
jclass arrayClass=env->FindClass(“java/util/ArrayList”);
jmethodideget=env->GetMethodID(arrayClass,“get”,“(I)Ljava/lang/Object;”;
jmethodID add=env->GetMethodID(arrayClass,“add”,“(Ljava/lang/Object;)Z);
jfloat*buf=env->GetFloatArrayElements(数据,nullptr);
jsize len=env->GetArrayLength(数据);
对于(int i=0;iCallObjectMethod(array2D,get,i);
env->CallBooleanMethod(array1D,add,buf[i]);
env->DeleteLocalRef(array1D);
}
}
外部“C”JNIEXPORT作业对象数组JNICALL
Java_com_示例_核心_数据_哈希表_表格框架(JNIEnv*env、jobject obj、jobject array2D、jint容量)
{
jclass arrayClass=env->FindClass(“java/util/ArrayList”);
jmethodideget=env->GetMethodID(arrayClass,“get”,“(I)Ljava/lang/Object;”;
jmethodID size=env->GetMethodID(arrayClass,“size”,“()I”);
//jmethodID array=env->GetMethodID(arrayClass,“toArray”,“()[Ljava/lang/Object;”;
jobjectArray frame=env->NewObjectArray(容量,env->FindClass(“[F”),NULL);
int height=env->CallIntMethod(array2D,size);
对于(int i=0;iCallObjectMethod(array2D,get,i);
int width=env->CallIntMethod(行,大小);
自动*数据=新的jfloat[宽度];
对于(int j=0;jCallFloatMethod(row,get,j);
}
jfloatArray-inner=env->NewFloatArray(宽度);
env->SetFloatArrayRegion(内部,0,宽度,数据);
env->SetObjectArrayElement(框架,i,内部);
删除数据;
env->DeleteLocalRef(内部);
env->DeleteLocalRef(行);
}
返回框;
}
java类

公共类哈希表{
私有列表表;
专用本机列表AllocateHashTable(int列,int行);
私有本机void AddToTable(列表表,float[]数据);
专用本机浮点[][]TableToFrame(列表表,整数容量);
静止的{
加载库(“哈希表”);
}
公共哈希表(int列、int行){
table=AllocateHashTable(列、行);
}
公共作废添加(浮动[]数据){
可添加(表格、数据);
}
公共int getRows(){
返回表.get(0.size();
}
公共int getColumns(){
返回table.size();
}
公共int[]getDim(){
返回新的int[]{getColumns(),getRows()};
}
公共浮动[][]toFrame(){
返回TableToFrame(table,getRows());
}
}
E/:[ZeroHung]zrhung\u get\u config:wp[0x0008]的get config失败
E/诺华:1.031.768799-28.839111-28.8391110.90600586-0.159423830.11840820.0
A/m.example.cor:indirect\u reference\u table.cc:78]JNI错误(应用程序错误):尝试使用过时的本地0x1(应为0x5)
A/m.example.cor:runtime.cc:565]运行时中止。。。
runtime.cc:565]转储未持有适当锁的所有线程:线程列表锁
runtime.cc:565]所有线程:
runtime.cc:565]DALVIK线程(38):
runtime.cc:565]“main”优先级=10 tid=1可运行
runtime.cc:565]| group=”“scont=0 dsCount=0 flags=0 obj=0x75f2c8f0 self=0x7e2dc15c00
runtime.cc:565]| sysTid=26417 nice=-10 cgrp=default sched=0/0 handle=0x7eb43cd548
runtime.cc:565]| state=R schedstat=(9470538543 471985952 4156)utm=871 stm=75 core=6 HZ=100
runtime.cc:565]| stack=0x7fe1c57000-0x7fe1c59000 stackSize=8MB
runtime.cc:565]|保持的互斥量=“中止锁”“变异锁”(共享保持)
runtime.cc:565]本机:#00 pc 0000000000 3C7D4c/system/lib64/libart.so(art::DumpNativeStack(std:u 1::basic_ostream&,int,BacktraceMap*,char const*,art::ArtMethod*,void*,bool)+220)
runtime.cc:565]本机:#01 pc 0000000000 4a5b64/system/lib64/libart.so(art::Thread::DumpStack(std::u 1::basic_ostream&,bool,BacktraceMap*,bool)const+352)
runtime.cc:565]本机:#02 pc 0000000000 4bf780/system/lib64/libart.so(art::DumpCheckpoint::Run(art::Thread*)+844)
runtime.cc:565]本机:#03 pc 0000000000 4B84fc/system/lib64/libart.so(art::ThreadList::RunCheckpoint(art::Closure*,art::Closure*)+484)
runtime.cc:565]本机:#04 pc 0000000000 4B7774/system/lib64/libart.so(art::ThreadList::Dump(std:u 1::basic_ostream&,bool)+500)
runtime.cc:565]本机:#05 pc 0000000000 47a580/system/lib64/libart.so(art::runtime::Abort(char const*)+388
    E/: [ZeroHung]zrhung_get_config: Get config failed for wp[0x0008]
    E/Novartis: 1.031.768799-28.839111-28.8391110.90600586-0.159423830.11840820.0
    A/m.example.cor: indirect_reference_table.cc:78] JNI ERROR (app bug): attempt to use stale Local 0x1 (should be 0x5)
    A/m.example.cor: runtime.cc:565] Runtime aborting...
        runtime.cc:565] Dumping all threads without appropriate locks held: thread list lock
        runtime.cc:565] All threads:
        runtime.cc:565] DALVIK THREADS (38):
        runtime.cc:565] "main" prio=10 tid=1 Runnable
        runtime.cc:565]   | group="" sCount=0 dsCount=0 flags=0 obj=0x75f2c8f0 self=0x7e2dc15c00
        runtime.cc:565]   | sysTid=26417 nice=-10 cgrp=default sched=0/0 handle=0x7eb43cd548
        runtime.cc:565]   | state=R schedstat=( 9470538543 471985952 4156 ) utm=871 stm=75 core=6 HZ=100
        runtime.cc:565]   | stack=0x7fe1c57000-0x7fe1c59000 stackSize=8MB
        runtime.cc:565]   | held mutexes= "abort lock" "mutator lock"(shared held)
        runtime.cc:565]   native: #00 pc 00000000003c7d4c  /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+220)
        runtime.cc:565]   native: #01 pc 00000000004a5b64  /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+352)
        runtime.cc:565]   native: #02 pc 00000000004bf780  /system/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+844)
        runtime.cc:565]   native: #03 pc 00000000004b84fc  /system/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+484)
        runtime.cc:565]   native: #04 pc 00000000004b7774  /system/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool)+500)
        runtime.cc:565]   native: #05 pc 000000000047a580  /system/lib64/libart.so (art::Runtime::Abort(char const*)+388)
        runtime.cc:565]   native: #06 pc 0000000000008d20  /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+800)
        runtime.cc:565]   native: #07 pc 00000000002435a4  /system/lib64/libart.so (art::IndirectReferenceTable::AbortIfNoCheckJNI(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)+240)
        runtime.cc:565]   native: #08 pc 00000000002f0894  /system/lib64/libart.so (art::IndirectReferenceTable::GetChecked(void*) const+432)
        runtime.cc:565]   native: #09 pc 00000000004ab4c4  /system/lib64/libart.so (art::Thread::DecodeJObject(_jobject*) const+100)
        runtime.cc:565]   native: #10 pc 0000000000472de4  /system/lib64/libart.so (art::(anonymous namespace)::ArgArray::BuildArgArrayFromVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, art::ObjPtr<art::mirror::Object>, std::__va_list)+136)
        runtime.cc:565]   native: #11 pc 0000000000474350  /system/lib64/libart.so (art::InvokeVirtualOrInterfaceWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+416)
        runtime.cc:565]   native: #12 pc 00000000003394e0  /system/lib64/libart.so (art::JNI::CallBooleanMethodV(_JNIEnv*,
_jobject*, _jmethodID*, std::__va_list)+656)
        runtime.cc:565]   native: #13 pc 0000000000000e84  /data/app/com.example.core-KEw67b6DP3--gNk9bQVCzw==/lib/arm64/libhash-table.so (_JNIEnv::CallBooleanMethod(_jobject*, _jmethodID*, ...)+208)
        runtime.cc:565]   native: #14 pc 0000000000001038  /data/app/com.example.core-KEw67b6DP3--gNk9bQVCzw==/lib/arm64/libhash-table.so (Java_com_example_core_data_HashTable_AddToTable+300)
        runtime.cc:565]   native: #15 pc 0000000000577fe0  /system/lib64/libart.so (art_quick_generic_jni_trampoline+144)
        runtime.cc:565]   native: #16 pc 000000000056ef88  /system/lib64/libart.so (art_quick_invoke_stub+584)
        runtime.cc:565]   native: #17 pc 00000000000d4204  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
        runtime.cc:565]   native: #18 pc 0000000000283fa8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
        runtime.cc:565]   native: #19 pc 000000000027dfb0  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
        runtime.cc:565]   native: #20 pc 000000000053fdd8  /system/lib64/libart.so (MterpInvokeDirect+296)
        runtime.cc:565]   native: #21 pc 0000000000561714  /system/lib64/libart.so (ExecuteMterpImpl+14484)
        runtime.cc:565]   native: #22 pc 000000000000a432  /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.example.core-KEw67b6DP3--gNk9bQVCzw==/split_lib_slice_4_apk.apk (deleted) (com.example.core.data.HashTable.add+42)
        runtime.cc:565]   native: #23 pc 0000000000257cb4  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1977376047+488)
        runtime.cc:565]   native: #24 pc 000000000025d7a8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
        runtime.cc:565]   native: #25 pc 000000000027df94  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
        runtime.cc:565]   native: #26 pc 000000000053ea98  /system/lib64/libart.so (MterpInvokeVirtual+588)
        runtime.cc:565]   native: #27 pc 0000000000561614  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        runtime.cc:565]   native: #28 pc 000000000000b5d8  /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.example.core-KEw67b6DP3--gNk9bQVCzw==/split_lib_slice_4_apk.apk (deleted) (com.example.core.data.RecordTable.add+92)
        runtime.cc:565]   native: #29 pc 0000000000257cb4  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1977376047+488)
        runtime.cc:565]   native: #30 pc 000000000025d7a8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
        runtime.cc:565]   native: #31 pc 000000000027df94  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
        runtime.cc:565]   native: #32 pc 000000000053ea98  /system/lib64/libart.so (MterpInvokeVirtual+588)
        runtime.cc:565]   native: #33 pc 0000000000561614  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        runtime.cc:565]   native: #34 pc 0000000000007878  /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.example.core-KEw67b6DP3--gNk9bQVCzw==/split_lib_slice_7_apk.apk (deleted) (com.example.core.research.SensorStepLayout$1.onRecieveSensorData+92)
        runtime.cc:565]   native: #35 pc 0000000000257cb4  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1977376047+488)
        runtime.cc:565]   native: #36 pc 000000000025d7a8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
        runtime.cc:565]   native: #37 pc 000000000027df94  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
        runtime.cc:565]   native: #38 pc 000000000053fa14  /system/lib64/libart.so (MterpInvokeInterface+1392)
        runtime.cc:565]   native: #39 pc 0000000000561814  /system/lib64/libart.so (ExecuteMterpImpl+14740)
        runtime.cc:565]   native: #40 pc 00000000000035b6  /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.example.core-KEw67b6DP3--gNk9bQVCzw==/split_lib_slice_0_apk.apk (deleted) (com.example.core.sensor.SensorController$4.onReceive+98)
        runtime.cc:565]   native: #41 pc 0000000000257cb4  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1977376047+488)
        runtime.cc:565]   native: #42 pc 000000000052aa88  /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
        runtime.cc:565]   native: #43 pc 00000000005780fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
        runtime.cc:565]   native: #44 pc 0000000000069840  /dev/ashmem/dalvik-jit-code-cache (deleted) (android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts+432)
        runtime.cc:565]   native: #45 pc 000000000056ef88  /system/lib64/libart.so (art_quick_invoke_stub+584)
        runtime.cc:565]   native: #46 pc 00000000000d4204  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
        runtime.cc:565]   native: #47 pc 0000000000283fa8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
        runtime.cc:565]   native: #48 pc 000000000027dfb0  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
        runtime.cc:565]   native: #49 pc 000000000053ea98  /system/lib64/libart.so (MterpInvokeVirtual+588)
        runtime.cc:565]   native: #50 pc 0000000000561614  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        runtime.cc:565]   native: #51 pc 00000000001a1a8a  /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.example.core-KEw67b6DP3--gNk9bQVCzw==/split_lib_dependencies_apk.apk (deleted) (android.support.v4.content.LocalBroadcastManager$1.handleMessage+22)
        runtime.cc:565]   native: #52 pc 0000000000257cb4  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1977376047+488)
        runtime.cc:565]   native: #53 pc 000000000025d7a8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
        runtime.cc:565]   native: #54 pc 000000000027df94  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
        runtime.cc:565]   native: #55 pc 000000000053ea98  /system/lib64/libart.so (MterpInvokeVirtual+588)
        runtime.cc:565]   native: #56 pc 0000000000561614  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        runtime.cc:565]   native: #57 pc 0000000000b3dee0  /system/framework/boot-framework.vdex (android.os.Handler.dispatchMessage+42)
        runtime.cc:565]   native: #58 pc 0000000000257cb4  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1977376047+488)
        runtime.cc:565]   native: #59 pc 000000000025d7a8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
        runtime.cc:565]   native: #60 pc 000000000027df94  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
        runtime.cc:565]   native: #61 pc 000000000053ea98  /system/lib64/libart.so (MterpInvokeVirtual+588)
        runtime.cc:565]   native: #62 pc 0000000000561614  /system/lib64/libart.so (ExecuteMterpImpl+14228)
        runtime.cc:565]   native: #63 pc 0000000000b45dac  /system/framework/boot-framework.vdex (android.os.Looper.loop+482)
        runtime.cc:565]   native: #64 pc 0000000000257cb4  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1977376047+488)
        runtime.cc:565]   native: #65 pc 000000000025d7a8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
        runtime.cc:565]   native: #66 pc 000000000027df94  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
        runtime.cc:565]   native: #67 pc 000000000053ff9c  /system/lib64/libart.so (MterpInvokeStatic+204)
        runtime.cc:565]   native: #68 pc 0000000000561794  /system/lib64/libart.so (ExecuteMterpImpl+14612)
        runtime.cc:565]   native: #69 pc 00000000003daadc  /system/framework/boot-framework.vdex (android.app.ActivityThread.main+428)
        runtime.cc:565]   native: #70 pc 0000000000257cb4  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.1977376047+488)
        runtime.cc:565]   native: #71 pc 000000000052aa88  /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
        runtime.cc:565]   native: #72 pc 00000000005780fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
        runtime.cc:565]   native: #73 pc 000000000056f24c  /system/lib64/libart.so (art_quick_invoke_static_stub+604)
        runtime.cc:565]   native: #74 pc 00000000000d4224  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
        runtime.cc:565]   native: #75 pc 0000000000472fd4  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
        runtime.cc:565]   native: #76 pc 0000000000474a28  /system/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&,
_jobject*, _jobject*, _jobject*, unsigned long)+1440)
        runtime.cc:565]   native: #77 pc 00000000004043ac  /system/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*,
_jobject*, _jobjectArray*)+52)
        runtime.cc:565]   at com.example.core.data.HashTable.AddToTable(Native method)
        runtime.cc:565]   at com.example.core.data.HashTable.add(HashTable.java:21)
        runtime.cc:565]   at com.example.core.data.RecordTable.add(RecordTable.java:61)
        runtime.cc:565]   at com.example.core.research.SensorStepLayout$1.onRecieveSensorData(SensorStepLayout.java:142)
        runtime.cc:565]   at com.example.core.sensor.SensorController$4.onReceive(SensorController.java:138)
    A/m.example.cor: runtime.cc:565]   at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:313)
        runtime.cc:565]   at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:121)
        runtime.cc:565]   at android.os.Handler.dispatchMessage(Handler.java:109)
        runtime.cc:565]   at android.os.Looper.loop(Looper.java:207)
        runtime.cc:565]   at android.app.ActivityThread.main(ActivityThread.java:7539)
        runtime.cc:565]   at java.lang.reflect.Method.invoke(Native method)
        runtime.cc:565]   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
        runtime.cc:565]   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)