Yes, that can work. However, there are lots of pitfalls. Many shortcuts people take as well as errors in the code can easily cause leaks. They are usually not very visible in Java, the gc takes care. However, with native code you absolutely must get your life cycle in order.
The message sounds like the old bundle is still active. That can happen because you have memory leaks so the class loader is not gc’ed or you never refreshed the bundle with the native library. After an update, it is mandatory to refresh the framework.
Native code is not for the faint of heart. Native code in a dynamic environment is masterclass level software I know, have been hurt lots of times.