EsotericSoftware / kryonet

TCP/UDP client/server library for Java, based on Kryo
BSD 3-Clause "New" or "Revised" License
1.81k stars 415 forks source link

Cannot resolve method register #165

Closed kevinlinxc closed 2 years ago

kevinlinxc commented 2 years ago

Hi, I'm working on some Java code someone else wrote that uses kryonet Server.

Some code is in a class that looks like this:

server = new Server();
server.getKryo().register(String.class);

However, IntelliJ highlights register in red with the error Cannot resolve method 'register(java.lang.Class<java.lang.String>)'

All the other Kryonet stuff is fine (connection, server, listener) so I'm not sure if something has changed or what.

My Maven pom.xml file has this:

    <repositories>
        <repository>
            <id>clojars</id>
            <url>http://clojars.org/repo/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>kryonet</groupId>
            <artifactId>kryonet</artifactId>
            <version>2.21</version>
        </dependency>
        <dependency>
            <groupId>org.java-websocket</groupId>
            <artifactId>Java-WebSocket</artifactId>
            <version>1.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20160810</version>
        </dependency>
    </dependencies>
crykn commented 2 years ago

server.getKryo().register(Class<?>); is indeed the right way of registering classes, so the problem is very likely somewhere on your end. Is it possible, that the Kryo dependency (which is a transient dependency of KryoNet) is missing? As far as I can see it is not part of the clojars repo, so maybe it can't be resolved?

kevinlinxc commented 2 years ago

When I look on Maven, it seems liek its part of the clojars repo. I ended up just trying kryonet-all and that seems to resolve my problem:

<dependency>
        <groupId>kryonet</groupId>
        <artifactId>kryonet-all</artifactId>
        <version>2.21</version>
</dependency>