我正在使用Eclipse中构建的用于录音的应用程序,并使用Giss.tv服务器进行播放。现在我已将该应用程序代码迁移到Android Studio中。在成功构建此应用程序之前,我遇到了很多错误。
现在,我的代码正在生成apk,它正在模拟器和设备中打开。但是当我开始录制声音时,得到错误"不幸的是xxx已经停止了#34;和应用程序关闭。
当我检查logcat的错误和异常时,我得到以下异常 -
01-14 11:51:22.875 3711-3775/com.vorbisdemo E/art: No implementation found for int org.xiph.vorbis.encoder.VorbisEncoder.startEncodingWithQuality(long, long, float, org.xiph.vorbis.encoder.EncodeFeed) (tried Java_org_xiph_vorbis_encoder_VorbisEncoder_startEncodingWithQuality and Java_org_xiph_vorbis_encoder_VorbisEncoder_startEncodingWithQuality__JJFLorg_xiph_vorbis_encoder_EncodeFeed_2)
01-14 11:51:22.875 3711-3775/com.vorbisdemo E/AndroidRuntime: FATAL EXCEPTION: Thread-175
Process: com.vorbisdemo, PID: 3711
java.lang.UnsatisfiedLinkError: No implementation found for int org.xiph.vorbis.encoder.VorbisEncoder.startEncodingWithQuality(long, long, float, org.xiph.vorbis.encoder.EncodeFeed) (tried Java_org_xiph_vorbis_encoder_VorbisEncoder_startEncodingWithQuality and Java_org_xiph_vorbis_encoder_VorbisEncoder_startEncodingWithQuality__JJFLorg_xiph_vorbis_encoder_EncodeFeed_2)
at org.xiph.vorbis.encoder.VorbisEncoder.startEncodingWithQuality(Native Method)
at org.xiph.vorbis.recorder.VorbisRecorder$AsyncEncoding.run(VorbisRecorder.java:512)
at java.lang.Thread.run(Thread.java:818)
我有来自VorbisRecorder.java(https://github.com/vincentjames501/libvorbis-libogg-android/blob/master/src/org/xiph/vorbis/recorder/VorbisRecorder.java)
的代码我试图检查(第511行)的输入值
case WITH_QUALITY:
result = VorbisEncoder.startEncodingWithQuality(sampleRate, numberOfChannels, quality, encodeFeed);
break;
和值如下所示 -
" sampleRate" = 44100," numberOfChannels" = 2," quality" = 0.2," encodeFeed" = org.xiph.vorbis .recorder.VorbisRecorder $ OutputStreamEncodeFeed @ 19b5c49c
所以我不知道为什么异常会被抛到这里,即使值似乎有效。
答案 0 :(得分:0)
startEncodingWithQuality
是一个原生函数(请参阅here),您的应用会搜索本机实现,但找不到它。
不幸的是,我有个坏消息:AndroidStudio还没有完全支持NDK开发。我认为你有两个选择:
OR
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') }
到您的gradle,而libs
是libvorbis-libogg-android/libs/
的路径