Загрузка скомпилированной библиотеки .jar в проект Android

1

ОБНОВИТЬ

Это правильный способ добавления скомпилированной библиотеки:

  1. Загрузите скомпилированный.jar (и любые дополнительные файлы)
  2. Добавьте банку (и что-то еще) в папку с именем libs в проекте.
  3. Щелкните правой кнопкой мыши по проекту и настройте путь сборки
  4. Библиотеки → Добавить банку → выберите банку
  5. ...
  6. прибыль

ОРИГИНАЛЬНЫЙ ВОПРОС

Кто-нибудь сталкивался с этим раньше?

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

Я пытаюсь (отчаянно) заставить его работать. Вот шаги, которые я выполнил:

  1. Загрузите скомпилированные файлы.jar и.so из загрузок (верхний aacdecoder-android-libs-0.5.zip).
  2. Добавьте два файла в папку lib в проекте.
  3. Щелкните правой кнопкой мыши по проекту и настройте путь сборки
  4. Библиотеки → Добавить банку → выберите банку

Я поместил образец кода на кодовую страницу 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-адрес существует. Если это проблема конкретной библиотеки, не беспокойтесь. :/

Теги:

3 ответа

1
Лучший ответ

Чтобы ответить на ваш второй вопрос относительно ошибки "Неизвестный хозяин" (который фактически говорит "Permission denied" в его первопричине, что имеет больше смысла): вам нужно объявить разрешение 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.

  • 0
    это была проблема. Спасибо.
0

Вы должны извлечь файл aacdecoder-android-libs-0.5.zip, это будет revleal aacdecoder-android-0.5.jar и папка с именем armeabi, содержащая статическую библиотеку.

Чтобы использовать библиотеку, скопируйте папку и aacdecoder-android-0.5.jar в папку libs. И добавьте банку в свой путь сборки (как раньше с zip файлом).

  • 0
    Я уже делал это! Спасибо за мысль, хотя.
0

Попробуйте щелкнуть правой кнопкой мыши по проекту, а затем перейти к свойствам> путь сборки java.

  • 0
    Вот где я в конечном итоге, когда я щелкаю правой кнопкой мыши и иду «Путь сборки»> «Настроить путь сборки». :)
  • 0
    Ой, извини, у тебя больше ничего нет.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню