【问题标题】:Trying to use external .jar not working in Android尝试使用外部 .jar 在 Android 中不起作用
【发布时间】:2012-11-04 14:11:27
【问题描述】:

我正在尝试让一个小型 aac 无线电流在 android 应用程序中播放。我正在尝试使用 http://code.google.com/p/aacdecoder-android/,但我对 code.google.com 的运气一直不太好,因为我发现很多项目很难使用。

我下载了 zip,我认为我在项目属性中正确设置了它。

当我尝试运行代码行来播放文件时,我得到了这个错误:

11-15 16:28:25.750: E/AndroidRuntime(3626): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load aacdecoder: findLibrary returned null

我使用的代码是这样的:

import com.spoledge.aacdecoder.AACPlayer;
...
AACPlayer aacPlayer = new AACPlayer();
aacPlayer.playAsync( "http://..." );

有什么想法吗?我不认为它与 aacdecoder 项目本身有关,我认为我实际上设置不正确。我在日食中没有任何红线。想法?

【问题讨论】:

    标签: java android jar logcat


    【解决方案1】:
    【解决方案2】:

    您似乎忘记复制*.so(本机库),因为我刚刚创建了新项目,将*.jar 添加到Java Build Path(您已经这样做了)它播放流很好。我的代码:

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(new Button(this));
    
        AACPlayer aacPlayer = new AACPlayer();
        aacPlayer.playAsync( "http://http.yourmuze.com:8000/play/paradise/h.aac" );
    }
    

    别忘了添加权限:

    <uses-permission android:name="android.permission.INTERNET"/>
    

    【讨论】:

    • 我忘记了许可(谢谢)但是*.so 是什么意思。我不确定那是什么意思。
    • 本机 (c++) 库(so 只是一个库扩展)。阅读这个 - developer.android.com/tools/sdk/ndk/index.html。该库由两部分组成:1) native (.so) 是到 android 的 c++ 端口 2) java (.jar library) 只是本地库的包装器。所以你的应用程序找不到第一个库 - 添加它!它在文件夹libs/armaebi 中。
    • 我是否将.so 添加到/libs 中?
    • 只需将压缩文件夹aacdecoder-android-libs-0.6.1中的所有内容复制到项目的libs文件夹即可。
    • Hrm... 似乎有效,但确实“滞后”。另一个问题是“armeabi”和“armeabi-v7a”有什么区别
    【解决方案3】:

    确保它位于 /lib 文件夹和构建路径的项目属性中。并确保其列出的顺序高于 /src。

    【讨论】:

    • 更新了我的问题以显示我的属性。希望它有所帮助。
    • 看起来正确吗?我的 /libs 中有 jar。如果我删除库中的 jar,则会出现红线。这看起来正确吗?
    • Android 使用/libs 文件夹(带有“s”)。
    猜你喜欢
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 2014-09-22
    • 2011-12-22
    相关资源
    最近更新 更多