2014-04-19 35 views
0

我正在创建一个“Hello World”AAC流播放器。java.lang.UnsatisfiedLinkError:无法从加载程序加载aacdecoder

我的步骤:

  1. 在ADT的Eclipse v22.6.2,我创建了一个新的Android应用程序,一切默认设置。
  2. 下载aacdecoder-android-libs-0.8.ziphere
  3. 这一切提取到我的项目的libs文件夹中。

增加了以下进口活动:

import com.spoledge.aacdecoder.AACPlayer; 

添加以下到onCreate(...)方法的末尾:

AACPlayer aacPlayer = new AACPlayer(); 
aacPlayer.playAsync("http://prem4.di.fm:80/trance?gzufXm01F8D2Y6hj2");   

并运行它。我得到的错误:

Could not find class 'com.spoledge.aacdecoder.AACPlayer', referenced from method com.example.cardi.MainActivity.onCreate

阅读一些做题之后,即跳出我的唯一的事情是,在“项目”>“订单和导出”选项卡需要“属性”>“Java构建路径”和谁玩。之前:

enter image description here

我改变什么做的一点点进步:

  • 经过的aacdecoder进入
  • 移动aacdecoder进入顶端

,导致此错误:

java.lang.UnsatisfiedLinkError: Couldn't load aacdecoder from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.example.cardi-1.apk,libraryPath=/data/app-lib/com.example.cardi-1]: findLibrary returned null

每当我回到Android,我都觉得很蠢。请帮忙!

+0

我有一个类似的问题...项目没有错误,除了文件写入权限被锁定...启用后写入错误停止... – CrandellWS

+0

可能[此链接] [1]将帮助你... [1]:http://stackoverflow.com/a/25347930/3843374 – Paritosh

回答

1

检查你的lib文件夹它是否包含filename.so文件。这个错误,我们只有当这个ndk文件错过了。

或者您的软件包名称与您的Native C或C++代码不匹配。

例如:你的包的名字是​​和类名是Test

然后你从JNI调用的方法应该象下面这样声明。

com_example_project_Test_sum(......) { 

} 

这里总和是你的本地方法的名称。希望这会帮助你。

6

事实证明,这是一件非常简单的事情,在其他问题和答案中已经指出,但没有完全明确。所以对于任何人拔出他们的头发,在这里,它是勺子喂:

图书馆进来一个zip文件,aacdecoder-android-libs-0.8.zip

它具有以下目录结构:

aacdecoder-android-libs-0.8.zip 
    > aacdecoder-android-libs-0.8 
     > aacdecoder-android-0.8.jar 
     > armeabi 
      > libaacdecoder.so 
     > armeabi-v7a 
      > libaacdecoder.so 
     > mips 
      > libaacdecoder.so 
     > x86 
      > libaacdecoder.so 

究竟会不会工作正在复制的zip的内容到应用程序的文件夹libs。相反,您必须将FOLDER的内容复制到zip文件中的libs文件夹中。因此,例如,目录结构将是:

c:/users/me/EclipseWorkspace/Myproject/libs/

> aacdecoder-android-0.8.jar 
> armeabi 
    > libaacdecoder.so 
> armeabi-v7a 
    > libaacdecoder.so 
> mips 
    > libaacdecoder.so 
> x86 
    > libaacdecoder.so 

然后去项目>属性> Java构建路径>库>添加JAR文件,并选择JAR包。
然后转到Project> Properties> Java Build Path> Order and Export。检查JAR,并将其移至顶部。

Voila。头发长回

1

我不确定你是否找到了你的问题的答案,但我是从我的项目中的libs文件夹被错误地命名(是lib而不是libs)。我的问题是由于意外删除了我的项目,必须通过从手机中提取APK来恢复它。一旦我重命名文件夹,我的问题就解决了。希望有所帮助。

相关问题