typesense/typesense-java

How can i implement typesence in android

FaisalThreestops opened this issue · 5 comments

Description

i did intgrate typesence in android using java client . but authentication is not working. its showing some error

Steps to reproduce

app/Build.gradle

implementation 'org.typesense:typesense-java:0.0.10'

MainActivity.kt
private fun initTypesence() {
val nodes: MutableList = ArrayList()
nodes.add(
Node(
"https", // For Typesense Cloud use https
BuildConfig.NEXT_PUBLIC_TYPESENSE_HOST, // For Typesense Cloud use xxx.a1.typesense.net
"443" // For Typesense Cloud use 443
)
)
val configuration = Configuration(nodes, Duration.ofSeconds(2), BuildConfig.NEXT_PUBLIC_TYPESENSE_APIKEY)
val client = Client(configuration)
}

Error

15:47:38.238 W Accessing hidden method Ljava/lang/invoke/LambdaMetafactory;->metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; (blacklist, linking, denied)
15:47:38.251 W Accessing hidden method Ljava/lang/invoke/LambdaMetafactory;->metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; (blacklist, linking, denied)
15:47:38.257 W ERROR StatusLogger Unable to load services for service class org.apache.logging.log4j.spi.Provider
15:47:38.258 W java.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.runtime/javalib/core-oj.jar)
15:47:38.258 W at org.apache.logging.log4j.util.ServiceLoaderUtil.callServiceLoader(ServiceLoaderUtil.java:109)
15:47:38.258 W at org.apache.logging.log4j.util.ServiceLoaderUtil$ServiceLoaderSpliterator.(ServiceLoaderUtil.java:145)
15:47:38.258 W at org.apache.logging.log4j.util.ServiceLoaderUtil.loadClassloaderServices(ServiceLoaderUtil.java:100)
15:47:38.258 W at org.apache.logging.log4j.util.ServiceLoaderUtil.loadServices(ServiceLoaderUtil.java:82)
15:47:38.258 W at org.apache.logging.log4j.util.ServiceLoaderUtil.loadServices(ServiceLoaderUtil.java:76)
15:47:38.258 W at org.apache.logging.log4j.util.ProviderUtil.(ProviderUtil.java:67)
15:47:38.258 W at org.apache.logging.log4j.util.ProviderUtil.lazyInit(ProviderUtil.java:145)
15:47:38.258 W at org.apache.logging.log4j.util.ProviderUtil.hasProviders(ProviderUtil.java:129)
15:47:38.259 W at org.apache.logging.log4j.LogManager.(LogManager.java:90)
15:47:38.259 W at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:598)
15:47:38.259 W at org.typesense.api.ApiCall.(ApiCall.java:33)
15:47:38.259 W at org.typesense.api.Client.(Client.java:28)

15:47:38.267 W ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
15:47:38.276 W Accessing hidden method Ljava/lang/invoke/LambdaMetafactory;->metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; (blacklist, linking, denied)
15:47:38.534 W Slow Looper main: doFrame is 431ms late because of 3 msg, msg 2 took 408ms (seq=518 late=70ms h=android.os.Handler c=androidx.fragment.app.FragmentManager$5)

Metadata

Typesense typesense-java:0.0.10:

Android:

@FaisalThreestops

Can you try with the following version of the Java client?

implementation 'org.typesense:typesense-java:0.0.11-beta1'

@FaisalThreestops

Can you try with the following version of the Java client?

implementation 'org.typesense:typesense-java:0.0.11-beta1'

Its working , thank you. But When I try to execute the invalid query the app crashes. Not only that , it didn't trigger the error message on the console. is it compatible for android?

try {
permitDiskReads { viewModelScope.launch(Dispatchers.IO) {
//val collection = client.collections("search").documents()
val data=client.collections("search").documents("28").retrieve();
} }
} catch (e: Exception) {
e.printStackTrace()
println("error : ${e.message}")
}

Error :-
2023-03-30 16:49:27.961 1191-1329 InputDispatcher pid-1191 E channel '8caf8e7 com.app.app_name/com.app.app_name.ui.home.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
---------------------------- PROCESS ENDED (27447) for package com.app.app_name ----------------------------

The client is android compatible. That error does not seem like a Typesense related error.

We have fixed android compatibility issues in recent releases. Please try again with v0.3.0 (or above). If there's an issue, feel free to reopen.

It works well, but now found a problem. already used all permissions.

java.net.UnknownHostException: Unable to resolve host "..a1.typesense.net": No address associated with hostname