2015-07-02 4 views
1

С примером PJSUA2 для андроид, класс MyApp.java есть принтер журнала:печати, откуда LogWriter был назван в примере PJSIP (PJSUA2)

class MyLogWriter extends LogWriter 
{ 
    public String appLabel = "PJSUA (MyApp - MyLogWriter)"; 

    @Override 
    public void write(LogEntry entry) { 
     Log.i(appLabel, "LW("+entry.getLevel()+") Msg: " + entry.getMsg()); 
    } 
} 

простирался от "LogWriter" класса:

package org.pjsip.pjsua2; 

public class LogWriter { 
    private long swigCPtr; 
    protected boolean swigCMemOwn; 

    protected LogWriter(long cPtr, boolean cMemoryOwn) { 
    swigCMemOwn = cMemoryOwn; 
    swigCPtr = cPtr; 
    } 

    protected static long getCPtr(LogWriter obj) { 
    return (obj == null) ? 0 : obj.swigCPtr; 
    } 

    protected void finalize() { 
    delete(); 
    } 

    public synchronized void delete() { 
    if (swigCPtr != 0) { 
     if (swigCMemOwn) { 
     swigCMemOwn = false; 
     pjsua2JNI.delete_LogWriter(swigCPtr); 
     } 
     swigCPtr = 0; 
    } 
    } 

    protected void swigDirectorDisconnect() { 
    swigCMemOwn = false; 
    delete(); 
    } 

    public void swigReleaseOwnership() { 
    swigCMemOwn = false; 
    pjsua2JNI.LogWriter_change_ownership(this, swigCPtr, false); 
    } 

    public void swigTakeOwnership() { 
    swigCMemOwn = true; 
    pjsua2JNI.LogWriter_change_ownership(this, swigCPtr, true); 
    } 

    public void write(LogEntry entry) { 
    pjsua2JNI.LogWriter_write(swigCPtr, this, LogEntry.getCPtr(entry), entry); 
    } 

    public LogWriter() { 
    this(pjsua2JNI.new_LogWriter(), true); 
    pjsua2JNI.LogWriter_director_connect(this, swigCPtr, swigCMemOwn, true); 
    } 

} 

это печать очень полный журнал,

07-02 09:22:13.791: I/PJSUA (MyApp - MyLogWriter)(21597): LW(1) Msg: 09:22:13.788 sip_transport. Error processing 575 bytes packet from UDP 107.170.134.248:5060 : PJSIP syntax error exception when parsing 'To' header on line 5 col 38: 

и тем, что я знаю, что моя проблема в Парши g, улов есть, в файле? PJSUA имеет 203 .java-файлов, ни один из них не называется 'sip_transport'.

Есть ли способ сделать этот журнал показать мне, откуда он был вызван? Или любой другой способ найти этот источник проблем синтаксического анализа?

ответ

1

Вы можете получить данные метода вызова, используя stacktrace потока.

StackTraceElement caller = Thread.currentThread().getStackTrace()[1]; 

caller.getClassName(); 
caller.getMethodName(); 
caller.getFileName(); 
caller.getLineNumber(); 

Обратите внимание, что индекс первого определен, потому что является текущим методом (вершина стеки), и он идет вниз с каждым методом вызывающим. Таким образом, вы можете выбрать любого вызывающего абонента в нужном стеке.

+0

Вы можете помочь в этом вопросе http://stackoverflow.com/questions/36738485/make-call-above-api-18-using-pjsip –

Смежные вопросы