Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.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
android 5.x+上的NDK崩溃;用callstatic方法_Android_C++_Android Ndk - Fatal编程技术网

android 5.x+上的NDK崩溃;用callstatic方法

android 5.x+上的NDK崩溃;用callstatic方法,android,c++,android-ndk,Android,C++,Android Ndk,我的jni代码如下: 在android 5.x上工作正常,但在android 5.x+上出现崩溃, 我的NDK版本是NDK-r8b void vSendAVDataToJavaLayer(uint8_t *pAudioData, int dwAudioDataLen, int dwFrames, int64_t u64APTS, uint8_t *pVideoData, int dwVideoLen, int64_t u64VPTS) { if(mJvm !=

我的jni代码如下:
在android 5.x上工作正常,但在android 5.x+上出现崩溃,
我的NDK版本是NDK-r8b

void vSendAVDataToJavaLayer(uint8_t *pAudioData, int dwAudioDataLen, int dwFrames, int64_t u64APTS, uint8_t *pVideoData, int dwVideoLen, int64_t u64VPTS) { if(mJvm != NULL && fgHasInit) { JNIEnv *env = NULL; mJvm->AttachCurrentThread(&env, NULL); if(env != NULL) { int TmpLen = dwAudioDataLen; if(TmpLenNewByteArray(TmpLen); env->SetByteArrayRegion(jAudioarray, 0, TmpLen, AudioByteData); TmpLen = dwVideoLen; if(TmpLenNewByteArray(TmpLen); env->SetByteArrayRegion(jVideoArray, 0, TmpLen, VideoByteData); env->CallStaticVoidMethod(mClass, fields.post_AVdata, AudioByteData, dwAudioDataLen, dwFrames,u64APTS, jVideoArray,dwVideoLen,u64VPTS ); } mJvm->DetachCurrentThread(); } }
首先,为什么要使用非常旧的NDK版本?当前的一个是R10e,即使是那个也有很长一段时间没有更新。这个mClass…您是否使用
env->NewGlobalRef(env->FindClass(…)
来设置它?
I/DEBUG(2873): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-24 16:16:51.560: I/DEBUG(2873): Build fingerprint: 'HONOR/PLK-AL10/HWPLK:5.0.2/HONORPLK-AL10/C00B188:user/release-keys'
12-24 16:16:51.560: I/DEBUG(2873): Revision: '0'
12-24 16:16:51.560: I/DEBUG(2873): ABI: 'arm'
12-24 16:16:51.560: I/DEBUG(2873): pid: 25316, tid: 25436, name: Thread-1436  >>> com.yoosee (art::mirror::Class*)+37)
12-24 16:16:51.580: I/DEBUG(2873):     #01 pc 00072877  /system/lib/libart.so (art::CheckMethodArguments(art::mirror::ArtMethod*, unsigned int*)+398)
12-24 16:16:51.580: I/DEBUG(2873):     #02 pc 00224c1b  /system/lib/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+442)
12-24 16:16:51.580: I/DEBUG(2873):     #03 pc 0019d949  /system/lib/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+312)
12-24 16:16:51.580: I/DEBUG(2873):     #04 pc 000bd5a3  /system/lib/libart.so (art::CheckJNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+102)
12-24 16:16:51.580: I/DEBUG(2873):     #05 pc 00027645  /mnt/asec/com.yoosee-2/lib/arm/libmediaplayer.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+20)
12-24 16:16:51.580: I/DEBUG(2873):     #06 pc 0002790b  /mnt/asec/com.yoosee-2/lib/arm/libmediaplayer.so (vSendAVDataToJavaLayer(unsigned char*, int, int, long long, unsigned char*, int, long long)+198)
12-24 16:16:51.580: I/DEBUG(2873):     #07 pc 0002702b  /mnt/asec/com.yoosee-2/lib/arm/libmediaplayer.so
12-24 16:16:51.580: I/DEBUG(2873):     #08 pc 0022141f  /mnt/asec/com.yoosee-2/lib/arm/libmediaplayer.so
12-24 16:16:51.580: I/DEBUG(2873):     #09 pc 00015e83  /system/lib/libc.so (__pthread_start(void*)+30)
12-24 16:16:51.580: I/DEBUG(2873):     #10 pc 00013f43  /system/lib/libc.so (__start_thread+6)
12-24 16:16:51.770: W/AudioFlinger(3032): RecordThread: buffer overflow
12-24 16:16:51.980: E/Thermal-daemon(2894): [ap] temp_new :35  temp_old :34
12-24 16:16:52.000: I/AudioFlinger(3032): BUFFER TIMEOUT: remove(4097) from active list on thread 0xab1b88c0
12-24 16:16:52.010: I/DEBUG(2873): Tombstone written to: /data/tombstones/tombstone_06
12-24 16:16:52.020: I/AudioPolicyManager(3032): stopOutput() output 2, stream 3, session 69
12-24 16:16:52.020: I/AudioPolicyManager(3032): getNewOutputDevice() selected device 0
12-24 16:16:52.020: I/AudioPolicyManager(3032): setOutputDevice() output 2 device 0x0000 delayMs 40
12-24 16:16:52.020: I/AudioPolicyManager(3032): setOutputDevice() prevDevice 0x0002
12-24 16:16:52.020: I/AudioPolicyManager(3032): isStreamActive() stream 3 inPastMs 5000
12-24 16:16:52.020: I/AudioPolicyManager(3032): setOutputDevice() setting same device 0x0000 or null device for output 2
12-24 16:16:52.020: I/AudioPolicyManager(3032): isStreamActive() stream 3 inPastMs 5000
12-24 16:16:52.020: I/AudioPolicyManager(3032): isStreamActive() stream 3 inPastMs 5000