Back in 2012, during the early days of KeepSafe, we sought to implement an encryption scheme for our Android App. Through many iterations and prototypes, we found a sweet spot of sorts by leveraging the power of the JNI (Java Native Interface.) We decided to write our interface into the encryption library we utilized in Java, calling into the library via the JNI solely for the purpose of encryption and decryption. We opted for an on-the-fly solution, minimizing the impact on user experience as much as possible. Once we were happy with our solution, we decided to deploy it into our production app. We rigorously tested our code and were confident that everything would go smoothly; that is, until things beyond our control broke.
As we anxiously refreshed our crash reports following our release, we started to notice a recurring error. Users were running into an “UnsatisfiedLinkError”, which means that either A) the native library we were calling into did not exist or B) the native method we were calling did not exist. Since B) would almost always be caught via compiling and basic testing, we were immediately perplexed at the fact that users’ installations did not have the native libraries we shipped within the APK.
That's the agony and ecstasy of software development right there, pal.
(Score: 1, Interesting) by Anonymous Coward on Monday November 09 2015, @02:04PM
Why do you expect your IDE to automatically manage all your dependencies for you?
Well... yes? Shouldn't I expect that a tool designed to automate the software development process... automates the software development process?
You have to do that for every IDE for every language.
No you don't.
The package manager works well enough when everything you install happens to require the same versions as everything else, but it basically dumps everything into a folder on your python PATH and you're fucked when it doesn't work.
The system-wide environments exists for the purpose of setting up system-wide libraries. I know, I know, +5 insightful remark right here. For development environments, I would use virtualenv [python.org] which conveniently exists to address exactly the problem you are having among other things.
If you're confused about the XML then look at the XML schema or DTD. Or do you prefer undocumented, unstructured formats?
*cough*double dichotomy*cough* Sorry, allergies.
(Score: 1, Flamebait) by Immerman on Monday November 09 2015, @03:16PM
No, stock Eclipse is designed for *Java* programming, and Android doesn't run Java, it runs Dalvik. As far as the language and bytecode are concerned it's the same, but Davlik only includes a small subset of the Java standard library, and includes a large selection of alternative libraries.
Expecting a stock Eclipse install to compile Android apps is like expecting a stock C++ compiler to compile a Ogre3D-based app without having to install the SDK first.