0

I am working with an app that was build in Eclipse for voice recording and to play it with Giss.tv server. Now I have migrated that app code in to the Android Studio. I got many errors before successful build of this app.

Now, my code is generating apk and it is getting open in emulator as well as in device. but when I start to record voice, getting error "Unfortunately xxx has stopped" and app gets closed.

When I checked logcat for error and exception then I get below exception-

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)

I have code from VorbisRecorder.java (https://github.com/vincentjames501/libvorbis-libogg-android/blob/master/src/org/xiph/vorbis/recorder/VorbisRecorder.java)

I tried to check input values of (line no. 511)

case WITH_QUALITY:
                    result = VorbisEncoder.startEncodingWithQuality(sampleRate, numberOfChannels, quality, encodeFeed);
                    break;

and values are like shown below-

"sampleRate"=44100, "numberOfChannels"=2, "quality"=0.2, "encodeFeed"= org.xiph.vorbis.recorder.VorbisRecorder$OutputStreamEncodeFeed@19b5c49c

So I am not getting why exception is get throw here even values seems valid.

4

1 に答える 1

0

startEncodingWithQualityはネイティブ関数 (こちらを参照) であり、アプリはネイティブ実装を検索しますが、見つかりません。

残念ながら、残念なことに、AndroidStudio はまだ NDK 開発を完全にはサポートしていません。次の 2 つのオプションがあると思います。

  • 実験的な Gradle プラグインの使用方法に関するチュートリアルは、こちら にあります。NDK サポートの準備ができたら、動作するはずです。

また

  • 以下を gradle ファイルに追加dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') }libsます
于 2016-01-14T08:31:30.353 に答える