2013-02-19 48 views
1

用於播放AAC文件我已經安裝NDK和下載http://code.google.com/p/aacplayer-android/代碼的Android NDK java.lang.UnsatisfiedLinkError中:nativeStart

從而源i從

svn checkout http://aacplayer-android.googlecode.com/svn/trunk/ aacplayer-android-read-only 

,我已經下載播放器下載後從下面的代碼

http://aacplayer-android.googlecode.com/files/aacplayer-android-r25.zip

現在我必須使用該代碼爲我的項目,所以我必須創造新的JNI文件夾,並複製了所有代碼的.c和.h文件...下面是一個圖像

enter image description here

然後,我已經運行NDK-build命令和生成的.so文件它看起來像下面

enter image description here

現在ü可以看到,在庫這兩文件夾,文件夾,並.so文件創建它看起來像下面

enter image description here

現在,當我建立和使用下面的代碼運行的應用程序的每一件事情是工作的罰款庫加載與任何java.lang.UnsatisfiedLinkError中:nativeStart錯誤

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.list); 

    System.loadLibrary("aacarray"); 
    System.loadLibrary("mms"); 

但是當我開始播放流低於AAC文件錯誤會產生

 02-19 23:13:47.090: W/dalvikvm(847): No implementation found for native Lcom/example/xmlparsingex/ArrayDecoder;.nativeStart (ILcom/example/xmlparsingex/ArrayBufferReader;Lcom/example/xmlparsingex/Decoder$Info;)I 
     02-19 23:13:47.100: W/dalvikvm(847): threadid=11: thread exiting with uncaught exception (group=0x40015560) 
     02-19 23:13:47.100: E/AndroidRuntime(847): FATAL EXCEPTION: Thread-12 
     02-19 23:13:47.100: E/AndroidRuntime(847): java.lang.UnsatisfiedLinkError: nativeStart 
     02-19 23:13:47.100: E/AndroidRuntime(847): at com.example.xmlparsingex.ArrayDecoder.nativeStart(Native Method) 
     02-19 23:13:47.100: E/AndroidRuntime(847): at com.example.xmlparsingex.ArrayDecoder.start(ArrayDecoder.java:100) 
    02-19 23:13:47.100: E/AndroidRuntime(847):  at com.example.xmlparsingex.ArrayAACPlayer.playImpl(ArrayAACPlayer.java:114) 
    02-19 23:13:47.100: E/AndroidRuntime(847):  at com.example.xmlparsingex.AACPlayer.play(AACPlayer.java:273) 
    02-19 23:13:47.100: E/AndroidRuntime(847):  at com.example.xmlparsingex.AACPlayer.play(AACPlayer.java:242) 
    02-19 23:13:47.100: E/AndroidRuntime(847):  at com.example.xmlparsingex.AACPlayer$1.run(AACPlayer.java:202) 
    02-19 23:13:47.100: E/AndroidRuntime(847):  at java.lang.Thread.run(Thread.java:1019) 

請注意,我已經張貼了這個問題,它具有相同的錯誤java.lang.UnsatisfiedLinkError: nativeStart android NDK,但這個問題是不是同樣喜歡這樣,所以請不要downvote :(

我曾嘗試了這麼多解決問題,但未能成功,請任何機構可以幫我...

+1

Java調用一個名爲'Java_com_example_xmlparsingex_ArrayDecoder_nativeStart()'的本機C函數。你有沒有在你的C代碼中實現它? – 2013-02-19 20:18:31

+0

另外,也可以在其上調用JNI'RegisterNatives'。另請參閱http://developer.android.com/training/articles/perf-jni.html#faq_ULE。 – fadden 2013-02-20 01:49:31

+0

你好Alex Cohan不,我還沒有實現Java_com_example_x ..... – 2013-02-20 04:47:45

回答

3

您從原包裝com.spoledge.aacplayer接過aacplayer類和它們投進自己的包com.example.xmlparsingex(可能起源於一些Android的例)。 你不能那樣做。純Java類將會存活下來(由Eclipse重構支持),但具有本地方法的類不會。本地方法綁定到本地庫中的特定函數名稱。如果本地庫libaacarray.so導出函數Java_com_spoledge_aacplayer_ArrayDecoder_nativeStart,那麼相應的java類必須是com.spoledge.aacplayer.ArrayDecoder,並且沒有辦法繞過它。除非你想調整和重新編譯本地庫。

+0

Pavel Zdenek謝謝sooooo :)我已經做了它現在工作:) – 2013-02-20 10:09:55

相關問題