{ "id": "100028", "key": "TIMOB-10691", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" }, { "id": "14127", "description": "Sprint 2012-19 API", "name": "Sprint 2012-19 API", "archived": true, "released": true, "releaseDate": "2012-09-24" }, { "id": "14271", "description": "2012 Sprint 19", "name": "2012 Sprint 19", "archived": true, "released": true, "releaseDate": "2012-09-24" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-09-13T14:56:05.000+0000", "created": "2012-08-28T13:01:31.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "api", "module_map", "parity", "qe-review", "qe-testadded" ], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [ { "id": "20334", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "inwardIssue": { "id": "100009", "key": "ALOY-224", "fields": { "summary": "\"namespaces\" sample failing on android", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "20337", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "inwardIssue": { "id": "100035", "key": "ALOY-225", "fields": { "summary": "Remove Android Annotation workaround from \"namespaces\" sample", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2012-12-21T00:34:19.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "h2. Problem\r\n\r\nOn Android, you must set the {{latitude}} and {{longitude}} properties of a {{Ti.Map.Annotation}} in the {{createAnnotation()}} function, otherwise your app will crash with the error log below when Android attempts to add the annotation to a {{Ti.Map.View}} at runtime.\r\n\r\niOS and Mobileweb can specify these properties at any time before the annotations are added and work fine.\r\n\r\nh2. Proposed Fix\r\n\r\nAllow longitude and latitude to be set on an Annotation anytime before the annotations are assigned to a {{Ti.Map.View}} on Android.\r\n\r\nh2. Test Case\r\n\r\n{code:javascript}\r\nvar win = Titanium.UI.createWindow();\r\n\r\n// This will crash an android app. If you uncomment the latitude and longitude\r\n// in the createAnnotation() call and comment the assignments after it, all \r\n// will work fine with no crash.\r\nvar ann = Ti.Map.createAnnotation({\r\n animate: true,\r\n pincolor: Ti.Map.ANNOTATION_RED,\r\n title: \"Mountain View\",\r\n // latitude: 37.389569,\r\n // longitude: -122.050212\r\n});\r\nann.latitude = 37.389569;\r\nann.longitude = -122.050212; \r\n\r\nvar map = Ti.Map.createView({\r\n region: {\r\n latitude: 37.38,\r\n latitudeDelta: .2,\r\n longitude: -122.05,\r\n longitudeDelta: .2\r\n },\r\n annotations: [ann]\r\n});\r\n\r\nwin.add(map);\r\nwin.open();\r\n{code}\r\n\r\nh2. android error log\r\n\r\n{code}\r\nE/TiApplication(22490): (main) [1,521] Sending event: exception on thread: main msg:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appc.navgroup/com.appc.navgroup.NavgroupActivity}: java.lang.NullPointerException; Titanium 2.1.1,2012/07/27 14:01,0fd84a2\r\nE/TiApplication(22490): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appc.navgroup/com.appc.navgroup.NavgroupActivity}: java.lang.NullPointerException\r\nE/TiApplication(22490): \tat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)\r\nE/TiApplication(22490): \tat android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)\r\nE/TiApplication(22490): \tat android.app.ActivityThread.access$600(ActivityThread.java:123)\r\nE/TiApplication(22490): \tat android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)\r\nE/TiApplication(22490): \tat android.os.Handler.dispatchMessage(Handler.java:99)\r\nE/TiApplication(22490): \tat android.os.Looper.loop(Looper.java:137)\r\nE/TiApplication(22490): \tat android.app.ActivityThread.main(ActivityThread.java:4424)\r\nE/TiApplication(22490): \tat java.lang.reflect.Method.invokeNative(Native Method)\r\nE/TiApplication(22490): \tat java.lang.reflect.Method.invoke(Method.java:511)\r\nE/TiApplication(22490): \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)\r\nE/TiApplication(22490): \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)\r\nE/TiApplication(22490): \tat dalvik.system.NativeStart.main(Native Method)\r\nE/TiApplication(22490): Caused by: java.lang.NullPointerException\r\nE/TiApplication(22490): \tat com.google.android.maps.ItemizedOverlay.populate(ItemizedOverlay.java:311)\r\nE/TiApplication(22490): \tat ti.modules.titanium.map.TiMapView$TitaniumOverlay.setAnnotations(TiMapView.java:186)\r\nE/TiApplication(22490): \tat ti.modules.titanium.map.TiMapView.doSetAnnotations(TiMapView.java:783)\r\nE/TiApplication(22490): \tat ti.modules.titanium.map.TiMapView.processProperties(TiMapView.java:657)\r\nE/TiApplication(22490): \tat org.appcelerator.kroll.KrollProxy.setModelListener(KrollProxy.java:893)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:442)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:434)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:412)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:449)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:434)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:412)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleAdd(TiViewProxy.java:528)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:205)\r\nE/TiApplication(22490): \tat android.os.Handler.dispatchMessage(Handler.java:95)\r\nE/TiApplication(22490): \tat org.appcelerator.kroll.common.TiMessenger.dispatchMessage(TiMessenger.java:365)\r\nE/TiApplication(22490): \tat org.appcelerator.kroll.common.TiMessenger.dispatchPendingMessages(TiMessenger.java:350)\r\nE/TiApplication(22490): \tat org.appcelerator.kroll.common.TiMessenger$2.getResult(TiMessenger.java:235)\r\nE/TiApplication(22490): \tat org.appcelerator.kroll.common.TiMessenger.sendBlockingMessage(TiMessenger.java:262)\r\nE/TiApplication(22490): \tat org.appcelerator.kroll.common.TiMessenger.sendBlockingRuntimeMessage(TiMessenger.java:187)\r\nE/TiApplication(22490): \tat org.appcelerator.kroll.KrollProxy.fireSyncEvent(KrollProxy.java:612)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.TiBaseActivity.onCreate(TiBaseActivity.java:437)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.TiLaunchActivity.onCreate(TiLaunchActivity.java:162)\r\nE/TiApplication(22490): \tat org.appcelerator.titanium.TiRootActivity.onCreate(TiRootActivity.java:99)\r\nE/TiApplication(22490): \tat android.app.Activity.performCreate(Activity.java:4465)\r\nE/TiApplication(22490): \tat android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)\r\nE/TiApplication(22490): \tat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)\r\nE/TiApplication(22490): \t... 11 more\r\nE/AndroidRuntime(22490): FATAL EXCEPTION: main\r\nE/AndroidRuntime(22490): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appc.navgroup/com.appc.navgroup.NavgroupActivity}: java.lang.NullPointerException\r\nE/AndroidRuntime(22490): \tat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)\r\nE/AndroidRuntime(22490): \tat android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)\r\nE/AndroidRuntime(22490): \tat android.app.ActivityThread.access$600(ActivityThread.java:123)\r\nE/AndroidRuntime(22490): \tat android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)\r\nE/AndroidRuntime(22490): \tat android.os.Handler.dispatchMessage(Handler.java:99)\r\nE/AndroidRuntime(22490): \tat android.os.Looper.loop(Looper.java:137)\r\nE/AndroidRuntime(22490): \tat android.app.ActivityThread.main(ActivityThread.java:4424)\r\nE/AndroidRuntime(22490): \tat java.lang.reflect.Method.invokeNative(Native Method)\r\nE/AndroidRuntime(22490): \tat java.lang.reflect.Method.invoke(Method.java:511)\r\nE/AndroidRuntime(22490): \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)\r\nE/AndroidRuntime(22490): \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)\r\nE/AndroidRuntime(22490): \tat dalvik.system.NativeStart.main(Native Method)\r\nE/AndroidRuntime(22490): Caused by: java.lang.NullPointerException\r\nE/AndroidRuntime(22490): \tat com.google.android.maps.ItemizedOverlay.populate(ItemizedOverlay.java:311)\r\nE/AndroidRuntime(22490): \tat ti.modules.titanium.map.TiMapView$TitaniumOverlay.setAnnotations(TiMapView.java:186)\r\nE/AndroidRuntime(22490): \tat ti.modules.titanium.map.TiMapView.doSetAnnotations(TiMapView.java:783)\r\nE/AndroidRuntime(22490): \tat ti.modules.titanium.map.TiMapView.processProperties(TiMapView.java:657)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.kroll.KrollProxy.setModelListener(KrollProxy.java:893)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:442)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:434)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:412)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:449)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:434)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:412)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleAdd(TiViewProxy.java:528)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:205)\r\nE/AndroidRuntime(22490): \tat android.os.Handler.dispatchMessage(Handler.java:95)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.kroll.common.TiMessenger.dispatchMessage(TiMessenger.java:365)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.kroll.common.TiMessenger.dispatchPendingMessages(TiMessenger.java:350)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.kroll.common.TiMessenger$2.getResult(TiMessenger.java:235)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.kroll.common.TiMessenger.sendBlockingMessage(TiMessenger.java:262)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.kroll.common.TiMessenger.sendBlockingRuntimeMessage(TiMessenger.java:187)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.kroll.KrollProxy.fireSyncEvent(KrollProxy.java:612)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.TiBaseActivity.onCreate(TiBaseActivity.java:437)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.TiLaunchActivity.onCreate(TiLaunchActivity.java:162)\r\nE/AndroidRuntime(22490): \tat org.appcelerator.titanium.TiRootActivity.onCreate(TiRootActivity.java:99)\r\nE/AndroidRuntime(22490): \tat android.app.Activity.performCreate(Activity.java:4465)\r\nE/AndroidRuntime(22490): \tat android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)\r\nE/AndroidRuntime(22490): \tat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)\r\nE/AndroidRuntime(22490): \t... 11 more\r\n{code}", "attachment": [], "flagged": false, "summary": "Android: Android app crashes when Annotation latitude/longitude is not set in createAnnotation()", "creator": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "TiSDK 2.2.0 master\r\nTiStudio 2.1.2.x\r\nAndroid emulator (API 8)\r\nGalaxy Nexus (Android 4.0.4)", "comment": { "comments": [ { "id": "225206", "author": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing as fixed. Tested and verified on:\r\nTitanium Studio, build: 3.0.0.201210220122\r\nTitanium SDK, build: 3.0.0.v20121025171611\r\nDevice: Galaxy Nexus (4.1.1)", "updateAuthor": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-10-26T22:25:15.000+0000", "updated": "2012-10-26T22:25:15.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }