0

Is there some kind of magic required to get ptr.get() to work? For some reason the following code always crashes my app:

    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());

It successfully returns from AudioFile.createWithURL with no errors (error code: No), but crashes as soon as I try to get the java instance. I'm also experiencing the same type of crash in another section of code where I instantiate an AudioQueuePtr as queueptr, pass it in to AudioQueue.newInput and try to call queueptr.get(). Is there something I'm missing here?

There's no stack trace in java, but here's the 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
  • Do you run on device or in the simulator? Do you get a crash log you can share? Or a Java stack trace? – ntherning Dec 02 '14 at 10:36
  • @ntherning I run on a device (iPhone). There is no Java stack Trace, just some warnings on `AudioFile.createWithURL`: WARN: Failed to call getClassTypeID() for the CFType subclass org.robovm.apple.audiotoolbox.AudioFileStream WARN: Failed to call getClassTypeID() for the CFType subclass org.robovm.apple.audiotoolbox.AudioQueueTimeline WARN: Failed to call getClassTypeID() for the CFType subclass org.robovm.apple.audiotoolbox.AudioFile WARN: Failed to call getClassTypeID() for the CFType subclass org.robovm.apple.audiotoolbox.AudioQueue – Marc Raiser Dec 02 '14 at 16:26
  • @ntherning I edited the original post to include the XCode Organizer Device Log, if that is helpful. – Marc Raiser Dec 02 '14 at 17:05

1 Answers1

0

Turns out this was a bug in the RoboVM bindings. Should be fixed in future releases. View the bug report here: https://github.com/robovm/robovm/issues/627

Also, I posted a full working example here: RoboVM implementation of recording demo using AudioQueue results in "No @Marshaler found" error

Community
  • 1
  • 1