{ "id": "174634", "key": "TIMOB-27722", "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": [], "resolution": { "id": "2", "description": "The problem described is an issue which will never be fixed.", "name": "Won't Fix" }, "resolutiondate": "2020-01-31T00:51:23.000+0000", "created": "2020-01-20T14:54:28.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [], "issuelinks": [ { "id": "58127", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "174681", "key": "TIMOB-27743", "fields": { "summary": "Android: Remove hidden API usage from SDK", "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": "Low", "id": "4" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": null, "updated": "2020-01-31T00:51:23.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": "{code}\r\n[WARN] W/com.appc.test: Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)\r\n[WARN] W/com.appc.test: Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, linking, allowed)\r\n[DEBUG] EGL_emulation: eglMakeCurrent: 0xd5a1aa80: ver 3 0 (tinfo 0xbc082370)\r\n[INFO] chatty: uid=10133(com.appc.test) RenderThread identical 3 lines\r\n[DEBUG] EGL_emulation: eglMakeCurrent: 0xd5a1aa80: ver 3 0 (tinfo 0xbc082370)\r\n[WARN] W/com.appc.test: Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, linking, allowed)\r\n[DEBUG] EGL_emulation: eglMakeCurrent: 0xd5a1aa80: ver 3 0 (tinfo 0xbc082370)\r\n[INFO] chatty: uid=10133(com.appc.test) RenderThread identical 22 lines\r\n[DEBUG] EGL_emulation: eglMakeCurrent: 0xd5a1aa80: ver 3 0 (tinfo 0xbc082370)\r\n[WARN] W/com.appc.test: Accessing hidden field Ljava/nio/Buffer;->position:I (greylist, JNI, allowed)\r\n[WARN] W/com.appc.test: Accessing hidden field Ljava/nio/Buffer;->limit:I (greylist, JNI, allowed)\r\n[WARN] W/com.appc.test: Accessing hidden field Ljava/nio/Buffer;->_elementSizeShift:I (greylist, JNI, allowed)\r\n[DEBUG] EGL_emulation: eglMakeCurrent: 0xd5a1aa80: ver 3 0 (tinfo 0xbc082370)\r\n[INFO] chatty: uid=10133(com.appc.test) RenderThread identical 154 lines\r\n[DEBUG] EGL_emulation: eglMakeCurrent: 0xd5a1aa80: ver 3 0 (tinfo 0xbc082370)\r\n[WARN] W/com.appc.test: Accessing hidden method Lsun/misc/Unsafe;->getObject(Ljava/lang/Object;J)Ljava/lang/Object; (greylist, linking, allowed)\r\n{code}\r\n\r\nReproducible on our app (available to the team) using latest 9.0.0 master.", "attachment": [], "flagged": false, "summary": "Android: V8 warnings in latest master", "creator": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "comment": { "comments": [ { "id": "453890", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~hknoechel], us migrating the Google Support libraries to AndroidX got rid of a bunch of these.\r\n\r\nIn my test app, I'm seeing the following...\r\n{code}\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/content/res/Resources;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo; (light greylist, reflection)\r\n[WARN] W/tor.kitchensin: Accessing hidden field Landroid/content/res/CompatibilityInfo;->applicationScale:F (light greylist, reflection)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/graphics/drawable/Drawable;->getOpticalInsets()Landroid/graphics/Insets; (light greylist, linking)\r\n[WARN] W/tor.kitchensin: Accessing hidden field Landroid/graphics/Insets;->left:I (light greylist, linking)\r\n[WARN] W/tor.kitchensin: Accessing hidden field Landroid/graphics/Insets;->right:I (light greylist, linking)\r\n[WARN] W/tor.kitchensin: Accessing hidden field Landroid/graphics/Insets;->top:I (light greylist, linking)\r\n[WARN] W/tor.kitchensin: Accessing hidden field Landroid/graphics/Insets;->bottom:I (light greylist, linking)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic; (light greylist, linking)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)\r\n{code}\r\n\r\nThe only private method Titanium is accessing is {{getCompatibilityInfo()}} here...\r\n[TiPlatformHelper.java|https://github.com/appcelerator/titanium_mobile/blob/c27b90877bf41311d74339905aff240b46febe20/android/titanium/src/java/org/appcelerator/titanium/util/TiPlatformHelper.java#L67]\r\n\r\nMany of the hidden API warnings are coming from Google's AndroidX libraries. There is an open ticket on Google's end here...\r\nhttps://issuetracker.google.com/issues/123699881#comment12\r\n\r\nAndroidX is calling hidden {{computeFitSystemWindows()}} and {{makeOptionalFitsSystemWindows()}} methods via reflection here...\r\n[AndroidX ViewUtils.java|https://github.com/aosp-mirror/platform_frameworks_support/blob/a9ac247af2afd4115c3eb6d16c05bc92737d6305/v7/appcompat/src/main/java/androidx/appcompat/widget/ViewUtils.java]\r\n\r\nAndroidX is calling hidden {{getTextDirectionHeuristic()}} method via reflection here...\r\n[AndroidX AppCompatTextViewAutoSizeHelper.java|https://github.com/aosp-mirror/platform_frameworks_support/blob/a9ac247af2afd4115c3eb6d16c05bc92737d6305/v7/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextViewAutoSizeHelper.java#L712]\r\n\r\nAndroidX is calling hidden {{getOpticalInsets()}} method via reflection here...\r\n[AndroidX DrawableUtils.java|https://github.com/aosp-mirror/platform_frameworks_support/blob/a9ac247af2afd4115c3eb6d16c05bc92737d6305/v7/appcompat/src/main/java/androidx/appcompat/widget/DrawableUtils.java#L76]\r\n\r\nThe following hidden API warnings are coming from Google's {{WebView}}. We can't do anything about it.\r\nhttps://stackoverflow.com/questions/51988819/android-p-api-28-what-does-the-strictmode-policy-violation-smartselectionev\r\n{code}\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->(Landroid/content/Context;I)V (light greylist, reflection)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->logEvent(Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;)V (light greylist, reflection)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionStarted(I)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(II)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextSelection;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(III)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(IIILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)\r\n{code}\r\n\r\nThe following {{sun/misc/Unsafe}} hidden API warnings you are seeing comes from the AndroidX version of Google Maps. I can see it in their code here...\r\n[AndroidX CodedOutputStream.java|https://github.com/aosp-mirror/platform_external_protobuf/blob/f86b2973c1f2994a879544c60304f2a34b34e92c/java/core/src/main/java/com/google/protobuf/CodedOutputStream.java]\r\n{code}\r\n[WARN] W/lerator.testin: Accessing hidden method Lsun/misc/Unsafe;->arrayBaseOffset(Ljava/lang/Class;)I (greylist,core-platform-api, reflection, allowed)\r\n[WARN] W/lerator.testin: Accessing hidden method Lsun/misc/Unsafe;->arrayIndexScale(Ljava/lang/Class;)I (greylist, reflection, allowed)\r\n[WARN] W/lerator.testin: Accessing hidden method Lsun/misc/Unsafe;->getInt(Ljava/lang/Object;J)I (greylist, reflection, allowed)\r\n[WARN] W/lerator.testin: Accessing hidden method Lsun/misc/Unsafe;->putInt(Ljava/lang/Object;JI)V (greylist, reflection, allowed)\r\n[WARN] W/lerator.testin: Accessing hidden method Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J (greylist,core-platform-api, reflection, allowed)\r\n{code}\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-01-30T03:41:05.000+0000", "updated": "2020-01-30T03:41:05.000+0000" }, { "id": "453891", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "*Bottom Line:*\r\nThe only hidden API warning message Titanium is guilty of is the below, which comes from our [TiPlatformHelper.java|https://github.com/appcelerator/titanium_mobile/blob/c27b90877bf41311d74339905aff240b46febe20/android/titanium/src/java/org/appcelerator/titanium/util/TiPlatformHelper.java#L67] source file.\r\n{code}\r\n[WARN] W/tor.kitchensin: Accessing hidden method Landroid/content/res/Resources;->getCompatibilityInfo()Landroid/content/res/CompatibilityInfo; (light greylist, reflection)\r\n{code}\r\n\r\nI'm not sure what we can do about the warnings coming from Google's end... other than to hope they'll resolve them in their newest libraries.\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-01-30T03:48:30.000+0000", "updated": "2020-01-30T03:48:30.000+0000" }, { "id": "453910", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Thanks! This can be resolved as wont fix then (and maybe fix the one issue).", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-01-30T10:49:57.000+0000", "updated": "2020-01-30T10:49:57.000+0000" }, { "id": "453963", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I wrote up Titanium's hidden API issue here: [TIMOB-27743]\r\n\r\nThanks for bringing this up [~hknoechel]. I'm sure this will come up as a tech-support issue later, so, this ticket will be a good reference.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2020-01-31T00:51:12.000+0000", "updated": "2020-01-31T00:51:12.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }