- For framework, I generally only go with large and mature framework with lots of prewritten modules and large community. Generally, choosing one framework over the other would not really reduce the amount of work you need to spend on your own code by much, some framework may encourage a more beautiful code, others may make certain operations easy, but they generally sum up to very little difference to total development effort. However popular frameworks would have more prewritten modules you can leverage off and that's how you can usually save much more time and effort.
- For small non framework library, generally you'd be able to make modifications yourself if needed without much problem, so usually I'd consider having community as an added bonus. Most small libraries are only managed by a single person, but they still are better than building yourself. For large libraries though, having a mature, active community, and documentation is essential because you're unlikely to be able to make changes yourself as easily.
- License is essential. For one-man libraries, it's likely that you'll need to make modifications to the library, therefore it's essential that their license allows you to do so under terms you'd agree with.
For small libraries, you should always assume that you'll need to fork and that the project is already abandoned. This is usually not a problem, especially if the project is hosted on Github or BitBucket, because they make forking other people's project stupidly easy. For small libraries, you can always take over the maintenance of the project yourself, if the original maintainer is gone or if they're planning to take the project direction to places you don't want to go to.
I'm less concerned with project activity, mature library that have achieved their sense of "perfectness" generally would only need to do bug fixes, so their activity slowed down. Project activity is only important if the library involves a target that is actively evolving, for example, a wrapper for external service would need to be constantly updated as the external service evolves, so active development is essential, but a math library would not need much new development once it has all the feature it needed.
For larger libraries, things become more difficult. Taking over is much more involved, fortunately larger libraries generally do not move as fast, as they're generally more mature.
As @Sam said in his answer, I agree that the most important thing in evaluating open source library is how much it fits your requirement. Once any license issue is sorted out, using an open source library is rarely a mistake because you can always fork if things go south.