Git Product home page Git Product logo

Comments (8)

andrew-ld avatar andrew-ld commented on July 30, 2024

//Android versions below Nougat (Version 7/SDK 24) require setHostname() to be invoked on the socket object

from nv-websocket-client.

polivmi1 avatar polivmi1 commented on July 30, 2024

@andrew-ld this is true, but because

is called in the initialization and that method isn't available for < 24, it will throw a NoClassDefFoundError which isn't caught. So my suggestion is to either catch this or better remove the code for API < 24

from nv-websocket-client.

andrew-ld avatar andrew-ld commented on July 30, 2024

there is a try catch in static initialization

static
{
try
{
initialize();
}
catch (Exception e)
{
e.printStackTrace();
}
}

from nv-websocket-client.

polivmi1 avatar polivmi1 commented on July 30, 2024

@andrew-ld as I wrote in the first message, that catch is useless, because NoClassDefFoundError is an Error and not an exception, so it will not catch it.

from nv-websocket-client.

andrew-ld avatar andrew-ld commented on July 30, 2024

I missed the point, you are right, it should be handled directly throwable to avoid future problems.

from nv-websocket-client.

polivmi1 avatar polivmi1 commented on July 30, 2024

@andrew-ld will you be able to add it or should I create a PR? It looks like the repository is dead...

from nv-websocket-client.

yandeqing avatar yandeqing commented on July 30, 2024

Linking to work done in #225

I download the source project add it to my project then skip the "initialize" method on API < 24

like

    private static void initialize() throws Exception {
        if (Build.VERSION.SDK_INT < 24) {
            Log.e("SNIHelper", "The class is available since Java 1.8 / Android API Level 24 (Android 7.0)");
            return;
        }
        // Constructor which represents javax.net.ssl.SNIHostName(String).
        // The class is available since Java 1.8 / Android API Level 24 (Android 7.0)
        sSNIHostNameConstructor = Misc.getConstructor(
                "javax.net.ssl.SNIHostName", new Class<?>[]{String.class});

        // Method which represents javax.net.ssl.SSLParameters.setServerNames(List<SNIServerName>).
        // The method is available since Java 1.8 / Android API Level 24 (Android 7.0)
        sSetServerNamesMethod = Misc.getMethod(
                "javax.net.ssl.SSLParameters", "setServerNames", new Class<?>[]{List.class});
    }

from nv-websocket-client.

yandeqing avatar yandeqing commented on July 30, 2024

there is a try catch in static initialization

static
{
try
{
initialize();
}
catch (Exception e)
{
e.printStackTrace();
}
}

static 
{ 
    try 
    { 
       if (Build.VERSION.SDK_INT < 24) {
           return;
       }
        initialize(); 
    } 
    catch (Exception e) 
    { 
        e.printStackTrace(); 
    } 
} 

from nv-websocket-client.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.