MAP524/DPS924 - 2014
Learning goes on after leaving classrooms and computer labs.Let us use this wiki to do collaborative learning and share our excitement and headaches in developing Android applications.
Feel free to create new and interesting topics on this wiki page.
Android Discovery Zone
In Lab2, when I was modifying and saving FirstActivity.java.bak while using NLED, the editor automatically saved a FirstActivity.java.bak in the same folder. When running 'ant debug' to compile, it generated error, explaining that unauthorized file was contained in the source folder. The way to solve this issue is to simply remove the .bak file or any other file extensions that is not the .java extension in the source directory. -- Peter
Debugging and Testing Android Code
Resources for Learning Android App Development
Labs Q&A Fall 2013
- Has anyone run into a problem where the emulator refuses to rotate (at all, never mind the layout of the running app)? I tried Ctrl+f11/f12, f11/f12, but none of them work. And I don't have a number pad on my laptop to try 7/9. --Andrew
- I pressed the HOME key (number pad) on my laptop and the emulator's orientation changed from portrait to landscape. (Peter)
- Figured it out - it was already used by the xfce window manager to switch to desktop 11/12, just cleared that binding and now it works as it should with the emulator. --Andrew
- I pressed the HOME key (number pad) on my laptop and the emulator's orientation changed from portrait to landscape. (Peter)
- If my app has an activity (activity1) that starts another activity (activity2), what's the relationship between these two? Is it possible that Android will kill activity1 since activity2 is te current activity? What if activity2 is not full screen, does that make a difference? -- Andrew
- How to load the externally created SQLite database into an Android project?
- Read the "Pre-Creating the Database" section in the textbook (pp. 285-289).
- the assets folder and the /data/data/<package name>/databases folder
- Read the "Pre-Creating the Database" section in the textbook (pp. 285-289).
- How do I open the database under data/data using the SqlLite browser?
- Will Android do anything to prevent more than one copy of a content provider being created at the same time? If not - how to prevent data corruption or inconsistency?
- I managed to get Google Maps/MyPlaces app to run on the emulator. It involved copying 2 APKs from a real device onto the emulator: /data/app/com.android.vending-1.apk and /data/app/com.google.android.gms-1.apk. Strangely enough, it seems to work on an Android API emulator but not a Google API emulator; adb install looked like it froze on attempting to install the APKs to a Google API emulator. The app runs, however, I get a bunch of repeated debug messages of "Failed to find provider info for com.google.android.gsf.gservices". If you want to give it a shot, here are some basic directions:
- Ensure you are using an Android API emulator, NOT the Google API! For some reason the APKs didn't install for me (or maybe you can figure it out...)
- Install and run the app on a real Android device. This is just to ensure that you have the updated version of Google Play Services on your device, and if not, you'll be prompted to update it using a Google login. The app should run after the update.
- Copy the 2 above APKs from the device to local storage (use -s option to specify device if you currently have 2 or more connected, use adb devices to see IDs)
- adb pull data/app/com.google.android.gms-1.apk gms-1.apk
- adb pull data/app/com.android.vending-1.apk vending-1.apk
- Start the emulator if you haven't done so already, and install the 2 APKs to the emulator (once again use -s option to specify device if necessary)
- adb install gms-1.apk
- adb install vending-1.apk
- Run MyPlaces on the emulator. It should run now... I don't know if I'm allowed to put these APKs up for download... --Mdafidchao 11:38, 14 November 2013 (EST)
- Unfortunately, as of November 4, Genymotion has dropped support for Google Apps/APIs, see: https://plus.google.com/+GenymotionEmulator/posts/jNF8Kwu5p1c . The post mentions that they are trying to "work with Google to add them back" but in the mean time, you'll have to install the packages yourself: http://blog.zeezonline.com/2013/11/install-google-play-on-genymotion-2-0/ --Mdafidchao 13:44, 14 November 2013 (EST)
Assignment 1 Q&A
- Is the relationship between schedule and student/teacher 1:1? (ie: to delete a schedule you can just delete the account that schedule is attached to) -- Dennis
- The assignment specifies we include "validfrom" and "validto" dates. This implies that we could have several schedules for each student/teacher. eg. one for summer, another for fall, etc. However, this being our first assignment I think it would be reasonable to have exactly one timetable per student/teacher. We would then use the "validfrom" and "validto" dates to tell us when the schedule has become outdated.... John
Assignment 2 - Proposals
- open data and web services
- festivals and events (Sukhbir Singh Ghotra)
- Android: #Hashtag search from the Twitter updates and manipulation of returned data (Imtiaz Latif)
- Android: Toronto for you - all events, workshops, lectures, festivals, celebrations in Toronto (Natalia Levkevitch)
- Android: Online Timetable Sharing backend for assignment 1
- Android: Solid Waste Management Guidelines (Shajinth Pathmakulaseelan)
- Android: Real Time TTC next vehicle arrival tracker (Dennis Villasenor)
- Android MAP524: TTC real time tracker (Michael Afidchao)