gpt4 book ai didi

java - 安卓ndk java.lang.UnsatisfiedLinkError : nativeStart

转载 作者:行者123 更新时间:2023-11-29 05:48:23 25 4
gpt4 key购买 nike

为了播放 AAC 文件,我安装了 NDK 并下载了 http://code.google.com/p/aacplayer-android/代码

我从中下载的那个源

 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

现在您可以看到在 libs 文件夹中创建了这两个文件夹并创建了 .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但是这个问题不像这样,所以请不要投反对票:(

我已经尝试了很多方法来解决这个问题,但都没有成功,请任何人帮助我...

最佳答案

您从原始包 com.spoledge.aacplayer 中获取了 aacplayer 类并将它们放入您自己的包 com.example.xmlparsingex 中(可能源自某些 Android 示例) . 你不能那样做。纯 Java 类将在其中生存(由 Eclipse 重构支持),但具有 native 方法的类则不会。 native 方法绑定(bind)到 native 库中的特定函数名称。如果原生库libaacarray.so导出函数Java_com_spoledge_aacplayer_ArrayDecoder_nativeStart,那么对应的java类一定是com.spoledge.aacplayer.ArrayDecoder,并且有没有办法解决它。除非您也想调整和重新编译 native 库。

关于java - 安卓ndk java.lang.UnsatisfiedLinkError : nativeStart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14964866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com