2013-02-19 49 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

相关问题