gpt4 book ai didi

android - 将已编译的 .jar 库加载到 Android 项目中

转载 作者:行者123 更新时间:2023-11-30 04:37:39 26 4
gpt4 key购买 nike

更新

这是添加已编译库的正确方法:

  1. 下载编译后的 .jar(和任何额外文件)
  2. 将 jar(和其他任何东西)添加到项目中名为 libs 的文件夹中。
  3. 右键单击项目并配置构建路径
  4. 库 -> 添加 jar -> 选择 jar
  5. ...
  6. 利润

原始问题

有人遇到过这个吗?

http://code.google.com/p/aacdecoder-android/

我正在(拼命地)尝试让它工作。以下是我遵循的步骤:

  1. 从下载中下载已编译的 .jar 和 .so 文件(最上面的 aacdecoder-android-libs-0.5.zip)。
  2. 将这两个文件添加到项目中名为 lib 的文件夹中。
  3. 右键单击项目并配置构建路径
  4. 库 -> 添加 jar -> 选择 jar

我已将示例代码放入 google 代码页,但出现此错误:

W/dalvikvm(  405): threadid=3: thread exiting with uncaught exception (group=0x4001aa28)
E/AndroidRuntime( 405): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime( 405): java.lang.UnsatisfiedLinkError: Library aacdecoder not found
E/AndroidRuntime( 405): at java.lang.Runtime.loadLibrary(Runtime.java:489)
E/AndroidRuntime( 405): at java.lang.System.loadLibrary(System.java:557)
E/AndroidRuntime( 405): at com.spoledge.aacdecoder.Decoder.loadLibrary(Decoder.java:167)
E/AndroidRuntime( 405): at com.spoledge.aacdecoder.Decoder.create(Decoder.java:188)
E/AndroidRuntime( 405): at com.spoledge.aacdecoder.Decoder.create(Decoder.java:178)
E/AndroidRuntime( 405): at com.spoledge.aacdecoder.AACPlayer.createDecoder(AACPlayer.java:407)
E/AndroidRuntime( 405): at com.spoledge.aacdecoder.AACPlayer.<init>(AACPlayer.java:121)
E/AndroidRuntime( 405): at com.spoledge.aacdecoder.AACPlayer.<init>(AACPlayer.java:104)
E/AndroidRuntime( 405): at com.spoledge.aacdecoder.AACPlayer.<init>(AACPlayer.java:95)
E/AndroidRuntime( 405): at com.tclayson.furadio.FURadioActivity.onCreate(FURadioActivity.java:14)
E/AndroidRuntime( 405): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
E/AndroidRuntime( 405): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
E/AndroidRuntime( 405): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
E/AndroidRuntime( 405): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
E/AndroidRuntime( 405): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
E/AndroidRuntime( 405): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 405): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 405): at android.app.ActivityThread.main(ActivityThread.java:4203)
E/AndroidRuntime( 405): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 405): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 405): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
E/AndroidRuntime( 405): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
E/AndroidRuntime( 405): at dalvik.system.NativeStart.main(Native Method)

我做错了什么?!谁能帮忙?任何人都可以让那个特定的图书馆工作吗?我需要播放 AAC 流(例如:http://media-ice.musicradio.com/Capital)。

谢谢

更新

这次我将库文件(.jar 和 .so)添加到不同的文件夹 libs(使用 s)。

执行与上述相同的步骤会产生此新错误:

D/ddm-heap(  436): Got feature list request
D/dalvikvm( 436): Trying to load lib /data/data/com.tclayson.furadio/lib/libaacdecoder.so 0x4376acc8
D/dalvikvm( 436): Added shared lib /data/data/com.tclayson.furadio/lib/libaacdecoder.so 0x4376acc8
D/dalvikvm( 436): No JNI_OnLoad found in /data/data/com.tclayson.furadio/lib/libaacdecoder.so 0x4376acc8
I/InetAddress( 436): Unknown host media-ice.musicradio.com, throwing UnknownHostException
E/AACPlayer( 436): playAsync():
E/AACPlayer( 436): java.net.SocketException: Permission denied (maybe missing INTERNET permission)
E/AACPlayer( 436): at org.apache.harmony.luni.platform.OSNetworkSystem.createSocketImpl(Native Method)
E/AACPlayer( 436): at org.apache.harmony.luni.platform.OSNetworkSystem.createSocket(OSNetworkSystem.java:85)
E/AACPlayer( 436): at org.apache.harmony.luni.net.PlainSocketImpl2.create(PlainSocketImpl2.java:59)
E/AACPlayer( 436): at java.net.Socket.checkClosedAndCreate(Socket.java:829)
E/AACPlayer( 436): at java.net.Socket.connect(Socket.java:984)
E/AACPlayer( 436): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:67)
E/AACPlayer( 436): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionManager$ConnectionPool.getHttpConnection(HttpConnectionManager.java:151)
E/AACPlayer( 436): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionManager.getConnection(HttpConnectionManager.java:73)
E/AACPlayer( 436): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getHTTPConnection(HttpURLConnection.java:826)
E/AACPlayer( 436): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:812)
E/AACPlayer( 436): at com.spoledge.aacdecoder.AACPlayer.play(AACPlayer.java:259)
E/AACPlayer( 436): at com.spoledge.aacdecoder.AACPlayer$1.run(AACPlayer.java:230)
E/AACPlayer( 436): at java.lang.Thread.run(Thread.java:1060)

这里有什么问题?我不明白 Unknown host 错误,因为很明显上面的 url 存在。如果这是图书馆的特定问题,请不要担心。 :/

最佳答案

要回答关于“未知主机”错误的第二个问题(实际上在其根本原因中说“权限被拒绝”,这更有意义):您需要在您的文件中声明 INTERNET 权限AndroidManifest.xml,如:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="..." [...]>
[...]
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
[...]
</manifest>

有关 Android 权限概念的更多详细信息,请参阅:http://developer.android.com/guide/topics/security/security.html

关于android - 将已编译的 .jar 库加载到 Android 项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565194/

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