Unit testing private methods may not be good practise, but few methods in product has complex login in private methods.
The best solution is to extract a class from the complex logic. Then the class you extract can be tested separately.
Can we somehow reflect or call private methods in Roboletric in Android ?
If you must use reflection to test your private methods then the procedure in a Robolectric is exactly the same as in a standard JUnit test that uses reflection:
Method method = targetClass.getDeclaredMethod(methodName, argClasses);
method.setAccessible(true);
return method.invoke(targetObject, argObjects);
OR any library similar to Roboletric which helps in testing private methods ?
Rather than learning a library that helps break good software engineering principles, a better idea may be to learn a dependency injection framework like Dagger 2. Such a DI framework will help you to build smaller classes with strong encapsulation that are more testable. Then you won't have the problem of having private methods to test in the first place.
There are some links to tools to help test private methods in the answers to this question