I wrote the entire section in sbt-assembly's README on excluding JARs and files.
When you say:
How can i add only needed dependencies to my jar library?
The word "dependencies" in context of sbt-assembly
usually means dependent jars. The problem is at the jar level, you'd need all of them. What you have to do is find out *.class
files that are not being used and exclude that out of the final fat jar. sbt-assembly
does have merge strategy which you can use to ignore files.
For Android development however, because there are so many files to exclude, you'd need something that does the analysis automatically. That's where ProGuard comes in. This will make the resulting jar much smaller. But it is also a bit of a voodoo, since you might not be able to know if you need certain class or not for sure. Try pfn/android-sdk-plugin if you haven't yet. It caches ProGuard result and makes it much faster.