2014-12-01 3 views
0

Есть ли какая-то магия, необходимая для работы ptr.get()? По какой-то причине следующий код всегда падает мое приложение:Ошибка приложения RoboVM на ptr.get()

AudioStreamBasicDescription asbd = new AudioStreamBasicDescription(mSampleRate, mFormatID, mFormatFlags, mBytesPerPacket, mFramesPerPacket, mBytesPerFrame, mChannelsPerFrame, mBitsPerChannel, 0); 
    AudioFilePtr outAudioFile = new AudioFilePtr(); 
    File f = File.createTempFile("ptt", ".caf"); 
    AudioFileError afe = AudioFile.createWithURL(new NSURL(f), 1667327590, asbd, 1, outAudioFile); 
    System.out.println(afe.name()); 
    System.out.println(outAudioFile.get()); 

Он успешно возвращается из AudioFile.createWithURL без ошибок (код ошибки: нет), но происходит сбой, как только я пытаюсь получить экземпляр Java. Я также испытываю один и тот же тип сбоя в другом разделе кода, где я создаю AudioQueuePtr как queueptr, передаю его AudioQueue.newInput и попробуйте позвонить queueptr.get(). Здесь что-то не хватает?

Там нет трассировки стека в Java, но вот XCode Organizer Device Log:

Incident Identifier: 2EEFF4F0-9031-4798-80E7-69F55BB70576 
CrashReporter Key: 08d7c27d21cb15553295bbae1b2aa2040e94b517 
Hardware Model:  iPhone3,1 
Process:    iOS_RVM_NN [1972] 
Path:    /var/mobile/Applications/B2571332-7C2F-4A5A-8932-8BF5EC94EE33/iOS_RVM_NN.app/iOS_RVM_NN 
Identifier:   iOS_RVM_NN 
Version:    1 (1.0) 
Code Type:   ARM (Native) 
Parent Process:  debugserver [1971] 

Date/Time:   2014-12-02 11:22:50.710 -0500 
OS Version:   iOS 7.1.2 (11D257) 
Report Version:  104 

Exception Type: EXC_CRASH (SIGSEGV) 
Exception Codes: 0x0000000000000000, 0x0000000000000000 
Triggered by Thread: 0 

Thread 0 Crashed: 
0 libsystem_kernel.dylib   0x39838a58 mach_msg_trap + 20 
1 libsystem_kernel.dylib   0x39838854 mach_msg + 44 
2 CoreFoundation     0x2eaa2846 __CFRunLoopServiceMachPort + 150 
3 CoreFoundation     0x2eaa0fb2 __CFRunLoopRun + 850 
4 CoreFoundation     0x2ea0beba CFRunLoopRunSpecific + 518 
5 CoreFoundation     0x2ea0bc9e CFRunLoopRunInMode + 102 
6 GraphicsServices    0x3391165e GSEventRunModal + 134 
7 UIKit       0x31358148 UIApplicationMain + 1132 
8 iOS_RVM_NN      0x007b024e 0x8c000 + 7488078 
9 iOS_RVM_NN      0x007af7e2 0x8c000 + 7485410 
10 iOS_RVM_NN      0x007af822 0x8c000 + 7485474 
11 iOS_RVM_NN      0x00344afe 0x8c000 + 2853630 
12 iOS_RVM_NN      0x00953ca0 0x8c000 + 9206944 
13 iOS_RVM_NN      0x0094cbfa 0x8c000 + 9178106 
14 iOS_RVM_NN      0x0094e876 0x8c000 + 9185398 
15 iOS_RVM_NN      0x0094e8d0 0x8c000 + 9185488 
16 iOS_RVM_NN      0x00948ce6 0x8c000 + 9161958 
17 iOS_RVM_NN      0x009417ae 0x8c000 + 9131950 
18 iOS_RVM_NN      0x00212f84 0x8c000 + 1601412 
+0

ли вы работать на устройстве или в симуляторе? У вас есть журнал сбоев, который вы можете поделиться? Или трассировка стека Java? – ntherning

+0

@ntherning Я запускаю устройство (iPhone). Нет никакого стека Java стека, только некоторые предупреждения на 'AudioFile.createWithURL': WARN: Не удалось вызвать getClassTypeID() для подкласса CFType org.robovm.apple.audiotoolbox.AudioFileStream WARN: Не удалось вызвать getClassTypeID() для подкласс CFType org.robovm.apple.audiotoolbox.AudioQueueTimeline WARN: Не удалось вызвать getClassTypeID() для подкласса CFType org.robovm.apple.audiotoolbox.AudioFile WARN: Не удалось вызвать getClassTypeID() для подкласса CFType org.robovm .apple.audiotoolbox.AudioQueue –

+0

@ntherning Я отредактировал исходное сообщение, чтобы включить журнал устройств организатора XCode, если это полезно. –

ответ

0

Оказывается, это была ошибка в переплетах RoboVM. Должны быть исправлены в будущих выпусках. Просмотреть отчет об ошибке здесь: https://github.com/robovm/robovm/issues/627

Кроме того, я отправил полный рабочий пример здесь: RoboVM implementation of recording demo using AudioQueue results in "No @Marshaler found" error

Смежные вопросы