Discussion Forums  >  Plugins, Customizing, Source Code

Replies: 23    Views: 136

Derval
Aspiring developer
Profile
Posts: 364
Reg: Sep 20, 2012
Milan
17,240
01/21/13 04:05 AM (13 years ago)

Using JSON snippet when creating a similar iOS Project in Android

Hi there, I was wondering if I am on the right track here: I would like to re-create the same iOS app that I have on the apple app store, for Android and the Google Play store. The only difference between the two apps will be the main menu. As the circle menu plugin that I used in the iOS project is not Android-compatible, I will need to use a different menu. All other plugins in the iOS app are also Android compatible. I have created a new project in the control panel (as I do not want to mess about with the existing one which is live in the app store) and using the JSON snippet plugin, I was thinking to copy and paste my entire iOS project into the new Android one, delete the code relating to the circle menu and then link it to the new menu. There are 80+ screens so I was trying to make life a bit easier on myself. I am using BT v 2.0 Would that work or is this wishful thinking?!? Thanks!
 
ictguy
Aspiring developer
Profile
Posts: 564
Reg: Jun 17, 2011
Mildura, Austra...
15,840
like
01/21/13 04:53 AM (13 years ago)
Hi, I have the plugin installed but not used it extensively. But from what I understand that would work fine as long as your other screens are all Android compatible (as you say). And you create some new json or a screen for your main menu. The only issue I see is if you want to update the android application, it isn't connected to the control panel in the same way as a regular app, you would have to cut and paste the again from the updated ios project. At the very least, a cut and paste of the ios json data in a new project wouldn't take that long - at least not as long as creating 80 news screens :) And you'd soon see if it was a viable option! cheers Darrel
 
SmugWimp
Smugger than thou...
Profile
Posts: 6316
Reg: Nov 07, 2012
Tamuning, GU
81,410
like
01/21/13 05:21 AM (13 years ago)
I think the Json Snippet keeper can accomodate that... ictguy brings up some good points about updates though... 80 screens is a lot to cut/paste, but if you use a huge chunk with snippet keeper, then updates will be practically manual and a bit cumbersome. If I were in your position, and things don't need to be done 'now', I'd consult with Stobe (the Json master) and see what he would/could recommend. He authored the Json snippet plugin, and is probably qualified to see how/if things can be imported/exported, and the best way to do so. Congrats on your expansion! I hope you come up with a workable idea. I've been snooping around my Self Hosted database looking at how the Database Schema is held together for similar tasks; move/copy screens from one project to another. But that's serious surgery, and my php skills are kind of rusty and in need of an update before I consider that kind of project. In any event, good luck in your endeavor! Please let us know what you decide to do! Cheers! -- Smug
 
Derval
Aspiring developer
Profile
Posts: 364
Reg: Sep 20, 2012
Milan
17,240
like
01/21/13 06:27 AM (13 years ago)
Many thanks for the advice - just what I needed. @itcguy - the update issue - that’s a good point. I think I’ll be ok on that front as the app will be pretty much frozen as soon as I have completed it and won’t require updating. I am very tempted to get the JSON snippet working for me in this case - the idea of redoing 80 screens is not so attractive! @SmugWimp - I certainly will contact @Stobe. You’re right - if anyone can answer this question, it will be him. I am finding that a lot of users are asking for the app on Android so I need to get to grasps with this new world too and it seems quite a bit different. Thanks for your words of support - I will keep you posted on how it goes!
 
Niraj
buzztouch Evangelist
Profile
Posts: 2943
Reg: Jul 11, 2012
Cerritos
37,930
like
01/21/13 12:03 PM (13 years ago)
I have not yet looked into the database. I wonder if an export-import tool could be written in PHP to allow for a copy of apps.
 
Stobe
buzztouch Evangelist
Profile
Posts: 1528
Reg: Mar 04, 2011
Fredericksburg,...
24,680
like
01/21/13 10:41 PM (13 years ago)
@Dervalo, I got your PM, but figured I'd answer most of the question here so others could read. Yes, you could save yourself a good amount of time by using the JSON Snippet plugin, but as @ictguy stated, it comes at a price. (updating individual screens). So here's what I would suggest: You can duplicate your iOS app with a minimum of 2 snippets in your new android app. One would be for the menu, and the other would be for the rest of the screens. Once you successfully swapped out a new menu (list menu, etc) for the circle menu, the rest would be very quick. But let's say you needed to change a PDF file a month or two later. You wouldn't be able to just open that PDF screen and change the document, you'd have to manually change it in the JSON snippet. Its not hard once you know what you're looking for, and its easier to learn than you might think. The other thing you could do is use the JSON plugin to get the app running quickly, then you could go back later and start re-creating some of the screens in the android app and take them back out of the JSON snippet (slowly rebuilding the app AFTER its already done and published). Then you could pick and choose which screens you'd really need to re-create versus leave alone. Here's the steps you would use to accomplish the above (a general overview) 1. In your blank android app, create a new main menu (list?, button?) and all the main entries (childItems) from that menu (from the config you sent me, it looks like about 6 or 7 items). (all of the screens you just created are temporary, so just make the "links" to the sub menus, you don't have to fully configure them all. Just the menu needs to be fully configured (background color, images, etc). 2. Copy all the JSON from your new config.txt which includes the new menu and all it's child items (the only items in your new app). Paste that into a new JSON snippet plugin. 3. Create a JSON snippet plugin, and paste all of the text AFTER the original circleview menu from your iOS app's config. (you'll see the circle menu and the list of childItems inside brackets [ ]. copy/paste everything after the closing bracket and comma. 4. In your new menu's JSON plugin (from step 2), change all the loadScreenWithItemId parameters to the new itemIds created in step 1. 5. Change the "home" page in your layout to the new menu JSON plugin from step 2. That's it (LOL). I know I probably lost everyone, but that's ok. It takes some practice. I did some youtube videos showing a similar (but smaller) task. But I've been wanting to do a new video with a larger app. If you wanted, we could jump in a Google Hangout or Screen share thingy, and I could record us actually duplicating your iOS app into a new android app. I'm sure the rest of the audience here could learn from it. Let me know if you'd be interested in that. -Chris
 
Niraj
buzztouch Evangelist
Profile
Posts: 2943
Reg: Jul 11, 2012
Cerritos
37,930
like
01/22/13 12:29 AM (13 years ago)
Hello Chris, A "clone" or "copy" utility on the BuzzTouch Control Panel is the best way to achieve the goal. Your procedure leaves too much to the Human for errors to creep into the equation. (Indeed, I'm spoiled by the built-in Export-Import utility for WordPress and how well it keeps me from shooting my own foot :-) As BuzzTouch gains more Members, there will be an increase of slight differentiation of apps between iOS and Android due to the single-platform plugins. Which will necessitate making a copy of the original app for the 2nd mobile platform. The App-DB-and-Config-Copy utility should be in the Top-10 of BuzzTouch priorities for 2013. Sincerely, -- Niraj
 
Stobe
buzztouch Evangelist
Profile
Posts: 1528
Reg: Mar 04, 2011
Fredericksburg,...
24,680
like
01/22/13 04:13 AM (13 years ago)
@Niraj, You are right. In a perfect world, it would be that easy. But the copy/clone process is incredibly complex to implement on our end. We do realize how important this feature would be to the members, which is why its definitely on the to-do list. -Chris
 
Derval
Aspiring developer
Profile
Posts: 364
Reg: Sep 20, 2012
Milan
17,240
like
01/22/13 04:25 AM (13 years ago)
@stobe - thanks a million for your input - excellent! let’s do the video. Just let me know when and where (pm me). Google hangouts works. Looking forward to it!
 
Derval
Aspiring developer
Profile
Posts: 364
Reg: Sep 20, 2012
Milan
17,240
like
01/28/13 04:58 AM (12 years ago)
I’m coming a cropper on step 4. Spent a couple of hours trying to figure it out. Can you explain in a bit more detail what you mean by: "in your new menu's JSON plugin (from step 2), change all the loadScreenWithItemId parameters to the new itemIds created in step 1" ? As you rightly point out, in my project, I have 7 new menu items which I need to link in. In the new JSON snippet that I created as part of step 2, I have for example this first menu item: {"itemId":"FA4AA346ECCEC3D0ACB19D5", "itemType":"BT_menuItem", "loadScreenWithItemId":"37299CF2D2617826B76520F", "titleText":"Welcome", "iconName":"shamrockicon.png”}, Where do I go to get the new item id’s created in step 1 to change the load screen id’s with ? Do I change the loadscreenwithitemid as in the example above? I have 13 pages of JSON and I am struggling to navigate through it. Many thanks! P.S. let me know if/when you want to do that recording - thanks again!
 
SmugWimp
Smugger than thou...
Profile
Posts: 6316
Reg: Nov 07, 2012
Tamuning, GU
81,410
like
01/28/13 05:21 AM (12 years ago)
Step 1/2 was 'create a new menu, and duplicate the menu items. Then you should have pasted all of that into a Json Snippet plugin. I guess this was to replace the circle menu in iOS that won't work on Android. Then step 3 was going into your iOS config file, and getting all the json 'after' the circle menu. This holds all of your existing screens, but no menu. It sounds like you're doing json surgery to connect the 'new menu' to the 'existing screens'. If that is the case, each menu item will need the 'itemId' of the (desired) existing 'target' screen. This would be one of the screens (and itemId) from the copied 'iOS' section of your config file. So, in your code segment above, the 'loadScreenWithItemId' would be the item ID of the corresponding screen in the json snippet of step 3. I 'think' that is what Stobe is speaking of. It might be better to hang on till he responds... Cheers! -- Smug
 
Derval
Aspiring developer
Profile
Posts: 364
Reg: Sep 20, 2012
Milan
17,240
like
01/28/13 06:31 AM (12 years ago)
Yep, @Smug, you’ve understood precisely what I am trying to do. In theory you’d think that it shouldn’t be too complicated, right, but I am not sure I am copying the right stuff from the right place to the right place. The new snippet made in step two which is a copy and paste of the new project’s config data, also contains the old json data from point after the circle menu onwards. I find this a bit confusing. It’s a lot of data (13 pages when you copy and paste it into a pages document). I am trying to do a "find” in pages to find the corresponding menu items to replace the id. Needle-in-a-haystack comes to mind. Let’s see what @Stobe has to say.
 
Derval
Aspiring developer
Profile
Posts: 364
Reg: Sep 20, 2012
Milan
17,240
like
01/28/13 07:26 AM (12 years ago)
hmmm… the json validator does not like the snippet containing the old json data minus the circle menu.. isn’t it supposed be valid?
 
Stobe
buzztouch Evangelist
Profile
Posts: 1528
Reg: Mar 04, 2011
Fredericksburg,...
24,680
like
01/28/13 08:42 AM (12 years ago)
Ok, let's see if I can help out a little bit. Don't feel bad, its a complex thing you're trying to do, and my set of instructions above were typed by memory. Not the perfect explanation, probably. (which is why I was willing to record a video - perhaps if people see me stumble around, they'll feel better, lol). Ok, to answer your last question first: No, snippets that get saved into the snippet keeper don't always validate perfectly. In the snippet keeper, we're looking at values saved within the overall big JSON array, not always a complete array in-itself. As for the "Step 4" problem, lets break it down a little.... In your project, you have a menu with 7 items. We're going to reconstruct that to a different type of menu with 7 items. To understand how this works, lets first look at how buzztouch creates and uses "items".... For that menu to work, you have: 1 menu (a single itemId) 7 menu items or childItems (7 more itemId's) 7 linked screens (7 more itemId's). The menu only cares about it's 7 "childItems". These are the rows of a list menu, or buttons in a button menu, etc. They are "items" with their own Id's, even if you don't create them as "pages" or "screens". They get created by the menu for its own use. Each of those "childItems" have an itemId, and they also link to another itemId (through the loadScreenWithItemId method). This is usually where some confusion begins. But just think of them as "middle-men", telling the app what screen to load depending on what "row" or "button" was tapped. Finally, each resulting "screen" or "plugin" that the menu leads to has their own itemId. Whether they are PDFs, map screens, menus, or whatever. They exist somewhere in the app's BT_config.txt, and they get found by the childItems when looked for. (still with me? LOL) Usually, when you look at your big JSON file, you'll see the menu (with all its settings listed) followed by a list of childItems inside brackets. When we go to duplicate the app using a new menu type, I had you create the new main menu (in step 1 above) and create it's 7 childItems, knowing that we weren't going to ever use those new 7 screens (or the menu). They are just temporary, to get the JSON snippet for the menu and childItems. By doing that, it created the new menu (with a new itemId) and 7 new childItems (each with a new itemId). That new menu is looking for screens that we are going to delete, so we need to tell it to look for (connect to) the screens that already exist in the app. So you'd have to look at the old childItems and see what 7 screens they are linking to (the 7 loadScreenWithItemId 's). Copy and paste those 7 itemIds into the new snippet (created in step 2 above) replacing the fake/temporary itemIds we created. (confusing, yes?) Let's try an example with fake JSON - this might not be formatted 100% perfect, but hopefully it will get the idea across. Old Circle Menu: {"itemId":"0001", "itemType":"Circleview_list_menu", "itemNickname":"Circleview", "navBarTitleText":"Foods I Love", ...[bunch of other config stuff]..., "childItems":[{"itemId":"1001", "itemType":"CV_menuItem", "loadScreenWithItemId":"2001", "titleText":"Pizza", "iconName":"pizza.png", "rowAccessoryType":"none", "transitionType":"flip"}, {"itemId":"1002", "itemType":"CV_menuItem", "loadScreenWithItemId":"2002", "titleText":"Waffles", "iconName":"waffles.png", "rowAccessoryType":"none"}, {"itemId":"1003", "itemType":"CV_menuItem", "loadScreenWithItemId":"2003", "titleText":"Pasta", "iconName":"pasta.png", "rowAccessoryType":"none"}, {"itemId":"1004", "itemType":"CV_menuItem", "loadScreenWithItemId":"2004", "titleText":"Hot Dogs", "iconName":"hotdogs.png", "rowAccessoryType":"none", "transitionType":"slideUp"}, {"itemId":"1005", "itemType":"CV_menuItem", "loadScreenWithItemId":"2005", "titleText":"Oat Meal", "iconName":"oatmeal.png", "rowAccessoryType":"none", "transitionType":"fade"}, {"itemId":"1006", "itemType":"CV_menuItem", "loadScreenWithItemId":"2006", "titleText":"PBandJ", "iconName":"pbandj.png", "rowAccessoryType":"none", "transitionType":"flip"}, {"itemId":"1007", "itemType":"CV_menuItem", "loadScreenWithItemId":"2007", "titleText":"More Pizza!", "iconName":"pizza.png", "rowAccessoryType":"none"}]} (I used fake numbers to make them easier to read) Notice the menu is itemId 0001. The Child items are all 1001 - 1007, and the resulting screens are 2001 - 2007 Now lets look at the new Menu we created for the duplicate app: {"itemId":"0002", "itemType":"list_menu", "itemNickname":"ListMenu", "navBarTitleText":"Foods I Love", ...[bunch of other config stuff]..., "childItems":[{"itemId":"3001", "itemType":"menuItem", "loadScreenWithItemId":"4001", "titleText":"Pizza", "iconName":"pizza.png", "rowAccessoryType":"none", "transitionType":"flip"}, {"itemId":"3002", "itemType":"menuItem", "loadScreenWithItemId":"4002", "titleText":"Waffles", "iconName":"waffles.png", "rowAccessoryType":"none"}, {"itemId":"3003", "itemType":"menuItem", "loadScreenWithItemId":"4003", "titleText":"Pasta", "iconName":"pasta.png", "rowAccessoryType":"none"}, {"itemId":"3004", "itemType":"menuItem", "loadScreenWithItemId":"4004", "titleText":"Hot Dogs", "iconName":"hotdogs.png", "rowAccessoryType":"none", "transitionType":"slideUp"}, {"itemId":"3005", "itemType":"menuItem", "loadScreenWithItemId":"4005", "titleText":"Oat Meal", "iconName":"oatmeal.png", "rowAccessoryType":"none", "transitionType":"fade"}, {"itemId":"3006", "itemType":"menuItem", "loadScreenWithItemId":"4006", "titleText":"PBandJ", "iconName":"pbandj.png", "rowAccessoryType":"none", "transitionType":"flip"}, {"itemId":"3007", "itemType":"menuItem", "loadScreenWithItemId":"4007", "titleText":"More Pizza!", "iconName":"pizza.png", "rowAccessoryType":"none"}]} (again, fake numbers) The only thing that changed was the menu's "type", the childItem's "type" and all the itemIds. Notice the menu is itemId 0002. The Child items are all 3001 - 3007, and the resulting screens are 4001 - 4007 Ok, this is how we're going to fix the above (which is hopefully what you have pasted into the new "snippet" plugin). First, the itemId of the new menu HAS TO match the itemId of the JSON Snippet plugin. (I think I missed that in the above steps). Inside the settings for the JSON Snippet plugin, you'll see the itemID (in bold, i believe) listed in the instructions. Copy and paste that in place of the itemId of the menu (replace the "0002" with the itemId of the snippet plugin. Second, We don't care about the ItemId's of the child items. Only the menu cares about them, so leave them alone. Third, we need to replace all the itemIds of the "loadScreenWithItemId" parameters in the childItems to match the OLD menu. i.e. change all the 4001 - 4007 numbers in your snippet to the 2001 - 2007 numbers from the OLD menu. This will allow the NEW menu to find the OLD screens. After all that's done (phew), you can tell the app's "Layout" to use the snippet as the new main menu (assuming this was all for a main menu in the first place). And after you get a good test, you can delete out the new menu and 7 screens. (or just leave them there. They don't hurt anything if they aren't connected to anything. Hope this helps. It may not be any clearer, but its a little more thorough, lol! -Chris
 
Derval
Aspiring developer
Profile
Posts: 364
Reg: Sep 20, 2012
Milan
17,240
like
01/29/13 08:30 AM (12 years ago)
Chris - thanks a lot for taking the time to put together this detailed explanation. The bad news is that, even after following it, I am getting configuration error messages and the final project configuration data is not valid in the JSON validator. So, in order to try to pinpoint the problem, I posted this short video to YouTube so you can see what I have been doing. <a href="http://www.youtube.com/watch?v=DrtjazkDHko" target="_blank" rel="nofollow">http://www.youtube.com/watch?v=DrtjazkDHko</a> I hope that by looking at the steps I have taken, you’ll be able to see where I am going wrong. I could well be completely off the mark! Could you take a look? Many thanks again, Derval 1st FEB - I’ve re-marked the video private on YouTube - if anyone needs to see it, just pm me. Thanks.
 
Stobe
buzztouch Evangelist
Profile
Posts: 1528
Reg: Mar 04, 2011
Fredericksburg,...
24,680
like
01/29/13 09:34 AM (12 years ago)
I'll be happy to take a look. But the youtube video is marked "private". You can send me a "unlisted" URL in a PM if you want. Or just change the settings to unlisted, and I can use the same URL. -Chris
 
Derval
Aspiring developer
Profile
Posts: 364
Reg: Sep 20, 2012
Milan
17,240
like
01/29/13 09:58 AM (12 years ago)
You’re right - try again now - thanks!
 
Stobe
buzztouch Evangelist
Profile
Posts: 1528
Reg: Mar 04, 2011
Fredericksburg,...
24,680
like
01/29/13 11:08 AM (12 years ago)
Found one thing (easy fix, but it would definitely give you the error you are reporting) Still watching....
 
Stobe
buzztouch Evangelist
Profile
Posts: 1528
Reg: Mar 04, 2011
Fredericksburg,...
24,680
like
01/29/13 11:32 AM (12 years ago)
Ok! I found a few easy things to fix. You did everything right, but my original instructions were missing a few nuances that really make a difference (sometimes its hard to type out something with so many moving parts without missing something, lol) Here we go: Around the 3 minute mark of your video, you copy the whole JSON text from the config.txt of your old app (as per my instructions, step 2 above). The problem is, you copied the entire BT_config.txt, rather than just the JSON for the menu and it's childItems. Step 2 above says: "2. Copy all the JSON from your new config.txt which includes the new menu and all it's child items (the only items in your new app). " it should probably say: "2. Copy ONLY the JSON from your new config.txt which includes ONLY the new menu and all it's child items." so skip the BT_appConfig, BT_items, BT_themes, and BT_tabs. And start AFTER the BT_screens So where you start to see: "BT_screens":[{"itemNickname":"Main",........etc you'll start copying at: {"itemNickname":"Main",......etc and stop copying at a }]} you'll see the last child item like this: ........."titleText":"Related Websites"}]}, but stop copying before the comma The end of that JSON snippet that you copy paste should be : ........"titleText":"Related Websites"}]} This new JSON snippet that you create will be all the JSON for just the menu alone. Everything else you did in the video with this snippet (copying/pasting the itemId's) was perfect. So, if you still have those same snippets in your project, open up that first one, and delete out the beginning JSON before the menu, and delete out anything after the }]} of the childItems That fixes the first part. Start looking at that while I type the rest out.... We'll get this thing working!!!!
 
Stobe
buzztouch Evangelist
Profile
Posts: 1528
Reg: Mar 04, 2011
Fredericksburg,...
24,680
like
01/29/13 11:46 AM (12 years ago)
The above steps will take out the majority of the JSON problems, but there will still be a few left. To better understand how this all works, I'll quickly explain what the JSON snippet plugin does. It basically lets you insert (inject) your own JSON into the app's BT_config.txt, without the database caring its there. We do this to speed things up, and it works well when it all works right :) So if you insert "bad" JSON into the BT_config.txt, it will give you that error. By copying the whole config.txt and pasting it into a snippet (like in your video), the end result was that you had an entire BT_config.txt INSIDE your BT_config.txt. That doesn't work so well, lol! So we fixed the first part. The next part is when you copied all the JSON AFTER the menu and childItems (step 3 above). If you copy too much JSON, you end up getting to many closing braces and brackets. You probably noticed the end of that snippet looked like: } } ] } } ] ... etc (a bunch of these things on multiple lines). Well some of those were the closing braces for the outlining array (BT_appConfig). And we can't have those in there. Too many closing braces that don't match the opening ones will give us errors also. To fix this, stop copying the text (for the second snippet) BEFORE the ] } ] } ] at the end. So you'll see in your app: ........"localFileName":"niall.pdf"} ] } ] } } STOP at the : ........"localFileName":"niall.pdf"} <-----stop here So, again, if you still have the same snippets as your video, simply delete out the ending ]}]}} and re-save. This should fix your JSON errors. Of course its hard to do this without having the text infront of me to do trial and error, but I think I got it right from the video. Other than that, you asked a question at minute 11 about the itemID of the second JSON snippet. You don't need to do anything with that. Play with this, and let me know what happens. We are close!!
 
Derval
Aspiring developer
Profile
Posts: 364
Reg: Sep 20, 2012
Milan
17,240
like
01/30/13 01:20 AM (12 years ago)
Close…. but no cigar yet Chris! I made the changes and the JSON validator is giving me the following error: Parse error on line 39: ... "childItems”:[{"itemId":"FA4AA346ECC -----------------------^ Expecting '}', ':', ',', ‘]' At this dropbox location, you’ll find a screen shot of the error and a full copy of the config data. Could it be as simple as a missing curly brace?!! Hopefully that’s all it is. Thanks for taking a look, Derval https://www.dropbox.com/sh/r6dviymkaje60l7/oWknpRzHp0
 
Stobe
buzztouch Evangelist
Profile
Posts: 1528
Reg: Mar 04, 2011
Fredericksburg,...
24,680
like
01/30/13 06:11 AM (12 years ago)
Ok, found a few errors in the JSON. Looks like these are not a part of the JSON snippet process, though. Mostly text formatting errors, that compilers don't like. First: (and this is for ALL people who read this) Don't use Pages as a text editor!!!! When copying and pasting text from the config.txt, use something like text editor, or my favorite is Text Wrangler (free, I believe). It looks like pages changed one of your quotes ( " ) to either an open-quote or close quote (pretty quotes). Text parsers don't know what to do with those. Thus there parse error. This happens in your config in your first menu page right here: "BT_screens":[{"itemId":"4AA1FEF1091E54C8E4AF866", "itemType":"WB_screen_menuImage", "itemNickname":"Main", "navBarTitleText":"Main", "imageFileName":"commision.png", "backgroundColor":"#FFFFFF", "includeAds":"0", "childItems”:[{"itemId":"FA4AA346ECCEC3D0ACB19D5", "itemType":"BT_menuItem", "loadScreenWithItemId":"34A0255D77CB7AA2B629528", "titleText":"Welcome", "iconName":"shamrockicon.png"}, Zoom in (control drag) to the quotation mark after the word childItems, do you see that quote looks a tiny bit different than the others? To fix: go into the JSON snippet that you created with that menu, and simply delete that single character, and replace with a regular quotation mark with your keyboard. Don't paste anything in there, lol. So that error simply manifested from copying and pasting your snippet in and out of pages. If I had to guess, you might have pasted the JSON into Pages to be able to read and edit it easier, and at some point you accidently deleted that original (un-pretty) quotation mark, and replaced it by typing one in (making it "pretty"). NEXT: There are some other errors in the JSON, but I believe they will be common to both your original app (ios) and you new app (duplicated for android). There's about 11 of them, and they are all text formatting problems. Hard to tell exactly what they are, looks like hidden line breaks ("enters"), and most of them are in the quiz questions and answers. Looks like you tried to put line breaks in the quizzes to make the questions look better. This is something that's happened to a lot of people (all resulting in JSON errors). To make things easier, I'll send you a copy of the JSON that I got to validate in a PM. I've replaced all the "bad text" with the string "bbbb". So bring the JSON into a text editor, and perform a "find" and look for bbbb. You'll find 11 occurrences. Find these screens in your control panel (probably the ios version) and do something to fix them. After that, you should have a good validating config.txt Phew! This was a good exercise for me this morning. Finding that darned quote with half-awake eyes took a while, lol! Let me know how it goes!
 
Derval
Aspiring developer
Profile
Posts: 364
Reg: Sep 20, 2012
Milan
17,240
like
01/30/13 01:24 PM (12 years ago)
@Stobe - what can I say?!!!!! How on earth did you spot that quotation mark?!!! Thanks a lot for going to this much trouble - believe me, I sincerely appreciate it! And I have learnt a bunch of new stuff in the process. PM received. I believe I am now well on the road to getting my first android app up on Google Play. Yay! :-) Thanks again, Derval
 
Stobe
buzztouch Evangelist
Profile
Posts: 1528
Reg: Mar 04, 2011
Fredericksburg,...
24,680
like
01/30/13 01:50 PM (12 years ago)
My pleasure!
 

Login + Screen Name Required to Post

pointerLogin to participate so you can start earning points. Once you're logged in (and have a screen name entered in your profile), you can subscribe to topics, follow users, and start learning how to make apps like the pros.