{ "id": "166391", "key": "TIMOB-24446", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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": "17608", "name": "Release 6.1.0", "archived": false, "released": true, "releaseDate": "2017-05-26" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-05-23T21:27:56.000+0000", "created": "2017-03-02T02:01:00.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "merge-6.2.0" ], "versions": [ { "id": "18928", "name": "Release 6.0.2", "archived": false, "released": true, "releaseDate": "2017-02-27" } ], "issuelinks": [ { "id": "54894", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "inwardIssue": { "id": "167676", "key": "TIMOB-24703", "fields": { "summary": "Android: Missing R class for modules", "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" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "55548", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "169281", "key": "TIMOB-25062", "fields": { "summary": "Android: Add config option to select Support Library Revision", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-11-10T23:30:07.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": "As of now we bundle a specific version of the Android Support Library with Titanium. Due to frequent updates to this library we should consider to allow users to use another version than our bundled one.\r\n\r\nSome general thoughts on this:\r\n- Build on-top of AAR handling introduced in TIMOB-18565 and make use of installed Support Libraries in {{${ANDROID_SDK}/extras/android/m2repository/com/android/support}}\r\n- Allow users to override the bundled one via config option, e.g. {{android.supportLibrary.selectedVersion}} or on a per-project base?\r\n- Utilize a hook to check if a custom version is set, extract into the build dir and integrate it. Cache on subsequent builds.\r\n\r\nThis ticket is for further evaluation of this topic.\r\n\r\n*Additional Notes*\r\n- Hyperloop contains a special case handling for the Android support library in the Android plugin hook", "attachment": [ { "id": "62982", "filename": "com.appc.timob24446-6_2_X-android-1.0.0.zip", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-08-03T15:41:56.000+0000", "size": 3323514, "mimeType": "application/zip" }, { "id": "62913", "filename": "com.appc.timob24446-android-1.0.0.zip", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-07-21T03:14:15.000+0000", "size": 64725, "mimeType": "application/zip" } ], "flagged": false, "summary": "Android: Allow user to specify Android Support Library version", "creator": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "closedSprints": [ { "id": 896, "state": "closed", "name": "2017 Sprint 11 SDK", "startDate": "2017-05-22T02:41:17.888Z", "endDate": "2017-06-05T02:41:00.000Z", "completeDate": "2017-06-05T00:14:33.418Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "416723", "author": { "name": "steipete", "key": "steipete", "displayName": "Peter Steinberger", "active": true, "timeZone": "Europe/Berlin" }, "body": "Found this issue through the somewhat related AAR support issue [TIMOB-18565]\r\n\r\nLocking in on old support libraries is a big problem in the Android ecosystem. At https://pspdfkit.com, we are running into the same issue with Xamarin Forms and now Titanium. As the Android Support libs are basically *essential* to build Android apps and also can't coexist, the only sane path here is that everyone works hard to always keeps the deps up to date or allows to configure the version used.\r\n\r\nPSPDFKit for Android currently requires v25.3 of the support library. and it's not possible to downgrade that because older versions have some bugs that we had to fix by updating. We always try to be on the most current version available to reduce version mismatch with our customers. \r\n\r\nWe're already testing v26 and will adopt that as soon as it's stable - major versions of the support library correspond with target OS version and it's important for us to support the new features of Android O as soon as it's out.\r\n\r\nIntegration guide:\r\nhttps://pspdfkit.com/guides/android/current/getting-started/integrating-pspdfkit/\r\n\r\nv26 Support Library Docs:\r\nhttps://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0-alpha1", "updateAuthor": { "name": "steipete", "key": "steipete", "displayName": "Peter Steinberger", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-04-04T12:43:55.000+0000", "updated": "2017-04-04T13:03:57.000+0000" }, { "id": "418866", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/9008", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-05-02T21:39:32.000+0000", "updated": "2017-05-02T21:39:32.000+0000" }, { "id": "419942", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~lchoudhary], sorry for the delay, had to fix TIMOB-24703 first to create a proper test case for this one. That also means TIMOB-24703 has to be resolved first before this can be properly tested.\r\n\r\nPR (6_1_X): https://github.com/appcelerator/titanium_mobile/pull/9070\r\n\r\n*Steps to test*\r\n# Extract the attached test module and add it to a new app\r\n# Replace the content of {{app/controllers/index.js}} with:\r\n{code}\r\n//var AarModule = require('com.appc.aarmodule');\r\nvar bottomNavigation = require('com.appc.timob24446');\r\n$.index.add(bottomNavigation.createExample());\r\n$.index.open();\r\n{code}\r\n# Remove the {{