Я пытаюсь использовать библиотеку ttorrent для создания торрент-приложения для Android. У меня проблема.ttorrent library HttpResponseMessage error
05-29 23: 07: 23,388: Е/AndroidRuntime (3681): неустранимые: BT-анонс (.. 393337)
05-29 23: 07: 23,388: Е/AndroidRuntime (3681): java.lang.NullPointerException
05-29 23: 07: 23,388: Е/AndroidRuntime (3681): в com.turn.ttorrent.common.protocol.http.HTTPAnnounceResponseMessage.parse (HTTPAnnounceResponseMessage.java:105)
05-29 23: 07: 23.388: E/AndroidRuntime (3681): at com.turn.ttorrent.common.protocol.http.HTTPTrackerMessage.parse (HTTPTrackerMessage.java:51)
05-29 23: 07: 23,388: Е/AndroidRuntime (3681): в com.turn.ttorrent.client.announce.HTTPTrackerClient.announce (HTTPTrackerClient.java:124)
05-29 23: 07: 23.388: E/AndroidRuntime (3681): at com.turn.ttorrent.client.announce.Announce.run (анонс.java:224)
05-29 23: 07: 23.388: E/AndroidRuntime (3681)): в java.lang.Thread.run (Thread.java:856)
public static HTTPAnnounceResponseMessage parse(ByteBuffer data)
throws IOException, MessageValidationException {
BEValue decoded = BDecoder.bdecode(data);
if (decoded == null) {
throw new MessageValidationException(
"Could not decode tracker message (not B-encoded?)!");
}
Map<String, BEValue> params = decoded.getMap();
try {
List<Peer> peers;
try {
// First attempt to decode a compact response, since we asked
// for it.
peers = toPeerList(params.get("peers").getBytes());
} catch (InvalidBEncodingException ibee) {
// Fall back to peer list, non-compact response, in case the
// tracker did not support compact responses.
peers = toPeerList(params.get("peers").getList());
}
return new HTTPAnnounceResponseMessage(data,
params.get("interval").getInt(),
params.get("complete").getInt(),
params.get("incomplete").getInt(),
peers);
} catch (InvalidBEncodingException ibee) {
throw new MessageValidationException("Invalid response " +
"from tracker!", ibee);
} catch (UnknownHostException uhe) {
throw new MessageValidationException("Invalid peer " +
"in tracker response!", uhe);
}
Существует нет клавиши, такие «ПЕРИОД al "или" complete "или" indomplete "являются параметрами. Существует два ключа: «сверстники» и «минимальный интервал».
Насколько я понял. После того, как я вызвал метод Client download, он запросил некоторую информацию из трекера, а затем попытался разобрать эту информацию. И вот где ошибка.
Итак, вопрос в том, почему это так? Это ошибка в библиотеке или что-то не так?
Ну, как именно вы «начали с ttorrent примера». Поскольку после загрузки файлов я создал новый проект в Eclipse. Затем я скопировал все файлы в каталог src. Затем загрузите все банки, такие как простая структура, commons.io и так далее. И я вижу ошибку в классе TrackerService. response.setText ("Not Found"); дает ошибку. У ответа просто нет такого метода вообще. – user1685095