I have reached a problem in the final stages of completing my stack. I have been working on this project for a couple months now and it is finally complete. The aim of the app is for you (as the user) to be able to have a type of calculator which performs a certain sequence of sums once a numerical value is entered. It is now finished (thank goodness! :P) but I have reached an error whilst saving this app. I am saving it as an Android application (.apk) for use on a mobile phone. I have the Android personal 1 pack, and my error is as follows:
There was an error while saving the standalone application could not compile application class
I am unsure as to why this is occurring but find it hard to believe that this could have occurred because of either invalid syntax or that a command I was using was incompatible with Android.
As I said before my stack is very simple and only performs a few basic mathematical functions (mainly multiplying contents of fields) by each other. If you wish to see this script, please request.
#ninjabunny14 yep it's a good idea to include code, actual text of error messages, details of the platform you're developing on, versions of LiveCode/Android etc
In the meantime you could Google "error while saving the standalone application could not compile application class" like I've just done and found quite a few links to LiveCode forum threads (like this one http://forums.runrev.com/phpBB2/viewtopic.php?f=53&t=12330) which look like they might be of use...
NinjaBunny,
This sounds more like an error from the Android SDK than a LiveCode error. For starters check these things in the Android settings pane in the LiveCode Standalone Applications Settings:
Identifier: It has to be unique to this application. If you've ever done a test build for Android without changing this default identifier you will get an error.
Signing: Unless you have a key, choose Sign for development only or Don't sign.
Minimum Android version: make sure you have all of the packages needed for your target version in your Android SDK.
Go to Edit/Preferences and set up the Android SDK path, which is probably empty in your case:
I had this a few times because it is easy to forget.
The identifier in the android settings does not like characters like - so do not use a name like com.itis-me.myapp , but use com.itisme.myapp
the use of a character like - gives you this error.
Related
I have recently created a HelloWorld project with Xamarin Forms to develop a mobile app. But, I don't know what happen but I cannot launch the app with Android Device Manager or even my own phone, not even the first time. This is the error:
I am using android version 10.0 to compile and for the device manager the version 10.0 also. At the manifest I also have version 10.0 for Android minimum version required and Android target version. I guess the version is not the problem, but I don't know what could be because, I haven't programmed anything yet. So I don't understand why the error is "The system cannot fint the specified file". I check the access route with File Explorer of Windows and there is the directory.
Unbelievable. My windows 10 user has an accent mark on the name: Adrián. But the problem was with the path of the project, because I change the name to: Adrian, but the path was still having the accent mark: C:\Users\Adrián. So that is very probably the problem. I know I could change the username from the path, but I think it is a bit difficult than to create a new user, besides, I don't want more problems with another programs installed. I created a new windows user, obviously, without any weird character and then I could work with Xamarin Forms. I think you learn a new thing every day.
Had the same issue when my project was called Städteam1. I created a new solution and project named Stadteam1 and it works right away. So I guess avoid using any letters that aren't part of standard English in any of the folder or filenames.
I want to scan a fingerprint. Also I have the device SDK provided for the manufacturer and there is an example inside of how to use the functions. When I run the example code suddenly it crashes while saying: "libOpenVG.so not found"
There is nothing in my code with the word "OpenVG". If I really nedd to use that thing, how can I use OpenVG in android studio?
Background
I wanted to simplify the usage of DB in an Android app.
For this, I've compared some third party libraries that create a DAO layer.
I've come up with a nice library called "GreenDao" (presentation about it here) . The website shows that it's faster than other competitors (like ORMLite) and is optimized for Android.
The problem
For some reason, on some device (usually old devices, with GB) , I get the next console error when trying to install the app:
Installation error: INSTALL_FAILED_DEXOPT
Please check logcat output for more details.
Launch canceled!
I've searched for the reason of this error, but couldn't find out how to solve it. Many complain about this error, but I can't find out why it occurs, and what can be done.
The error is quite common and known, but it's never mentioned as the result of using this library, yet when I remove the usage of this library, everything works fine...
Also note that on newer devices (like nexus 4) it installs and works just fine, and that the sample itself also works fine no matter which device I test it on.
The question
Why does it occur?
Is it possible that the structure of the classes is just too much for old devices to load, since we use other libraries ?
Could it be that I've reached the limit of code that is supported by android apps?
The jar file itself takes just 87KB ...
How can I solve this?
Ok, I've found the problem and the solution:
It has nothing to do with GreenDao.
It's because the app uses too many jars, so maybe Android has a limitation of code.
The solution is to either delete un-needed jar files or delete a lot of code.
I have a project A that should use a wizard to create a project B. Project B is based on a template. Project A should send data to that template and generate an APK from this data and template programmatically.
I've read about the APK structure and what it includes, like classes, resources, and manifest files. My question is, what is the best way to achieve this template-based generation of an APK? What could I use for this?
This is the open source project you're looking for.
https://code.google.com/p/terminal-ide/
Terminal IDE is a command line java / android dev kit that runs on the device itself. Using a correctly configured vim, bash and busybox, in a custom terminal + custom keyboard environment. All these applications are put together so that they interact correctly. A full Terminal emulator + custom ANSI keyboard ensure good bash, vim and busybox emulation. All set up and ready to run in a NON-ROOT environment. Normal user permissions are enough to run all of this.
You can also download it from Google Play here. The application has 4.7 stars on the Play Store from 1,324 ratings. Here is one of the latest written 5 stars reviews this application received on Google Play. And it's not unique by any means (the emphasis in bold is mine).
A Google User - March 12, 2013 - Version 2.02
Wow!
I have over 30 years programming experience (mostly in C/C++ and Assembly) and have been looking to learn to program Android. I looked everywhere for a way to compile and run Java tutorials on my tablet, with no success, until I found Terminal IDE! Then I started playing around with its capabilities and let me say again, wow. DEVELOPER - I have only one suggestion, which others have brought up too: reduce the internal memory footprint. Maybe breakup the different languages into installable add-ons?
In a way, it's a lot like the Android Java IDE called AIDE, minus the GUI interface (but unlike AIDE, it's doesn't have low artificial file limits, and since it's open source it can actually be used to build your own project upon and extend).
I had just finished building my app, and everything runs great. So I decided to create a lite version of it as well. I converted my android project to an android library and created a lite project and a full project that each reference the library.
I ran my full version this way and it worked great. I then tried to run my lite version and it complains with "SecurityException: Not allowed to bind to service Intent..."
It's referring to the local service that I bind to from each activity.
I'm guessing that because the service has the same package name in both apps, the lite app gets confused and tries to connect to the full app's service...
How can I fix this with as little disruption as possible?
Well, seeing as I got no replies... I thought I'd share what I ended up doing. My suspicion was correct about the services requiring unique package names if deployed in two applications.
So instead of a library and two projects I now just have one single android project. Within that I have a static flag constant that I change depending what I want to run. I generate an APK with the flag turned off in one case. Then I rename the package for the entire project (eclipse refactoring) and generate another APK with the flag turned on.
When the flag is on, some parts of the application are locked (so lite version). When it's off it's the full version.
Once I'm done, I revert to base and erase all my changes.
This isn't the ideal solution I was hoping for, but it only takes a minute to do. So it's not a big deal.