Closed
Bug 1263390
Opened 8 years ago
Closed 8 years ago
Android Studio 2.0: Use Gradle 2.10 and Android Gradle plugin 2.0
Categories
(Firefox Build System :: Android Studio and Gradle Integration, defect)
Firefox Build System
Android Studio and Gradle Integration
All
Android
Tracking
(firefox49 fixed)
RESOLVED
FIXED
mozilla49
Tracking | Status | |
---|---|---|
firefox49 | --- | fixed |
People
(Reporter: sebastian, Assigned: sebastian)
References
Details
Attachments
(6 files)
58 bytes,
text/x-review-board-request
|
mcomella
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
mcomella
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
mcomella
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
mcomella
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
mcomella
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
ahunt
:
review+
|
Details |
Android Studio is now available in the stable channel. To use it we need to use Gradle 2.10 and the new Android gradle plugin (2.0). I tested this locally and this seems to work without any issues. Even "Instant Run" does work - it's not really "instant" though.
Updated•8 years ago
|
Status: NEW → ASSIGNED
Assignee | ||
Comment 1•8 years ago
|
||
I had to disable "Instant Run" because sometimes it didn't pick up changes. However looking at G+ and Reddit it seems like this is a problem with the Android plugin in general and not related to our setup.
Assignee | ||
Comment 2•8 years ago
|
||
Running unit tests locally with 2.0 is broken:
> java.lang.RuntimeException: /Users/sebastian/Projects/Mozilla/fx-team/objdir-frontend/gradle/build/mobile/android/app/intermediates/bundles/local/debug/AndroidManifest.xml not found or not a file; it should point to your project's AndroidManifest.xml
> at org.robolectric.manifest.AndroidManifest.validate(AndroidManifest.java:121)
> at org.robolectric.manifest.AndroidManifest.getResourcePath(AndroidManifest.java:469)
> at org.robolectric.manifest.AndroidManifest.getIncludedResourcePaths(AndroidManifest.java:475)
> at org.robolectric.RobolectricTestRunner.createAppResourceLoader(RobolectricTestRunner.java:491)
> at org.robolectric.RobolectricTestRunner.getAppResourceLoader(RobolectricTestRunner.java:483)
> at org.robolectric.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:73)
> at org.robolectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:433)
> at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:240)
> at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:188)
> at org.robolectric.RobolectricTestRunner.runChild(RobolectricTestRunner.java:54)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:152)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> at org.junit.runners.Suite.runChild(Suite.java:128)
> at org.junit.runners.Suite.runChild(Suite.java:27)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
> at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
> at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
> at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
I'll push the patch to try.. Let's see if there's more.
Assignee | ||
Comment 3•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=345d386fbc0e
Assignee | ||
Comment 4•8 years ago
|
||
(In reply to Sebastian Kaspari (:sebastian) from comment #2) > Running unit tests locally with 2.0 is broken: > > > java.lang.RuntimeException: /Users/sebastian/Projects/Mozilla/fx-team/objdir-frontend/gradle/build/mobile/android/app/intermediates/bundles/local/debug/AndroidManifest.xml not found or not a file; it should point to your project's AndroidManifest.xml This can be fixed here: https://dxr.mozilla.org/mozilla-central/source/mobile/android/tests/background/junit4/src/org/mozilla/gecko/background/testhelpers/TestRunner.java#74-89 areResourcesFromLibrary() returns true and creates the wrong folders. Forcing areResourcesFromLibrary() to return false creates the correct folders and the tests get executed.
Assignee | ||
Comment 5•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=566b8e84e505
Assignee | ||
Comment 6•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=f0ea245becc9
Assignee | ||
Comment 7•8 years ago
|
||
Mh, looking at the deps task it seems like I can download the gradle and jcenter artifacts but need to build/package the SDK myself: https://tools.taskcluster.net/task-inspector/#c5R9foOWQLujCkDqFPX2Vw/
Assignee | ||
Comment 8•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=bc2766505cc3
Assignee | ||
Comment 9•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=087cf76b4938
Assignee | ||
Comment 10•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=d51e81d3f8a2
Assignee | ||
Comment 11•8 years ago
|
||
Everything's now ready to switch, except that I see some new lint errors: * 6x Registered: Class is not registered in the manifest * 25x UnusedResources: Unused resources * 2x GoogleAppIndexingUrlError: URL not supported by app for Google App Indexing Especially the UnusedResources is interesting. Either something is just wrong or the new tools are able to find more things.
(In reply to Sebastian Kaspari (:sebastian) from comment #11) > Everything's now ready to switch, except that I see some new lint errors: I might be able to provide additional context if you pasted in some of the new lint errors.
Assignee | ||
Comment 13•8 years ago
|
||
(In reply to Michael Comella (:mcomella) from comment #12) > (In reply to Sebastian Kaspari (:sebastian) from comment #11) > > Everything's now ready to switch, except that I see some new lint errors: > > I might be able to provide additional context if you pasted in some of the > new lint errors. https://public-artifacts.taskcluster.net/X2TJ29qAQWCnVUgK66yebQ/0/public/android/lint/lint-results-automationDebug.html I'll try to prepare patches for the errors.
Assignee | ||
Comment 14•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=32b18c74899d
Assignee | ||
Comment 15•8 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/47615/diff/#index_header See other reviews: https://reviewboard.mozilla.org/r/47615/
Attachment #8743180 -
Flags: review?(michael.l.comella)
Attachment #8743181 -
Flags: review?(michael.l.comella)
Attachment #8743182 -
Flags: review?(michael.l.comella)
Attachment #8743183 -
Flags: review?(michael.l.comella)
Attachment #8743184 -
Flags: review?(michael.l.comella)
Assignee | ||
Comment 16•8 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/47617/diff/#index_header See other reviews: https://reviewboard.mozilla.org/r/47617/
Assignee | ||
Comment 17•8 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/47619/diff/#index_header See other reviews: https://reviewboard.mozilla.org/r/47619/
Assignee | ||
Comment 18•8 years ago
|
||
* GeckoActivity, LocaleAwareAppCompatActivity, LocaleAwareFragmentActivity, LocaleAwareActivity: Those activities are never instantiated directly. Make them abstract. * CrashReporter: This activity is only registered if MOZ_CRASHREPORTER is set. Supress warning. Unfortunately I had to downgrade this lint check from "error" to "warning" because the current gradle plugin doesn't recognize the SupressLint annotation for the "Registered" check: https://code.google.com/p/android/issues/detail?id=204846 Review commit: https://reviewboard.mozilla.org/r/47621/diff/#index_header See other reviews: https://reviewboard.mozilla.org/r/47621/
Assignee | ||
Comment 19•8 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/47623/diff/#index_header See other reviews: https://reviewboard.mozilla.org/r/47623/
Assignee | ||
Comment 20•8 years ago
|
||
This is the current state. What's left are the UnusedResources errors: https://public-artifacts.taskcluster.net/a_cZqb-JTSC31Djt9ZpGGA/0/public/android/lint/lint-results-automationDebug.html#UnusedResources Most of them are about the RemoteTabsPanel. The Panel is not used anymore and I filed bug 1265996 to remove the code. But I wonder why those show up. I can follow some of the styles up to the layout and from there to the code. It almost looks like there's a bug in the Android plugin.
Assignee | ||
Comment 21•8 years ago
|
||
I did a sanity check by running the 2.1.0-beta3 preview version of the plugin. However I still get the same set of UnusedResources errors.
Comment on attachment 8743180 [details] MozReview Request: Bug 1263390 - Update releng manifests to point to new dependencies. r?mcomella https://reviewboard.mozilla.org/r/47615/#review44659
Attachment #8743180 -
Flags: review?(michael.l.comella) → review+
Comment on attachment 8743181 [details] MozReview Request: Bug 1263390 - Use Gradle 2.10 and Android Gradle plugin 2.0. r?mcomella https://reviewboard.mozilla.org/r/47617/#review44661 I don't know all the places these versions need to get updated, but these are all the places I already know about!
Attachment #8743181 -
Flags: review?(michael.l.comella) → review+
Comment on attachment 8743182 [details] MozReview Request: Bug 1263390 - TestRunner: Always use non-library configuration. r?mcomella https://reviewboard.mozilla.org/r/47619/#review44663 Does what it says it will (so r+) – but why do we want this? Thus, heisitant r+.
Attachment #8743182 -
Flags: review?(michael.l.comella) → review+
Comment on attachment 8743183 [details] MozReview Request: Bug 1263390 - Post: Fix new "Registered" lint errors. r?mcomella https://reviewboard.mozilla.org/r/47621/#review44665 ::: mobile/android/app/lint.xml:38 (Diff revision 1) > <issue id="ResourceAsColor" severity="warning" /> > <issue id="ResourceType" severity="warning" /> > <issue id="ValidFragment" severity="warning" /> > <issue id="WrongConstant" severity="warning" /> > > + <!-- We fixed all "Registered" lint errors. However the current gradle plugin has a bug where Well that's annoying...
Attachment #8743183 -
Flags: review?(michael.l.comella) → review+
Comment on attachment 8743184 [details] MozReview Request: Bug 1263390 - Post: Add new lint check "GoogleAppIndexingUrlError" to warning list. r?mcomella https://reviewboard.mozilla.org/r/47623/#review44667
Attachment #8743184 -
Flags: review?(michael.l.comella) → review+
(In reply to Sebastian Kaspari (:sebastian) from comment #20) > Most of them are about the RemoteTabsPanel. The Panel is not used anymore > and I filed bug 1265996 to remove the code. Maybe it's smart enough to know when classes files are unused and thus when the resources it points to are unused (or it piggie-backs on our Proguard optimizations which would zap the class).
re comment 24... (In reply to Sebastian Kaspari (:sebastian) from comment #4) > This can be fixed here: > https://dxr.mozilla.org/mozilla-central/source/mobile/android/tests/ > background/junit4/src/org/mozilla/gecko/background/testhelpers/TestRunner. > java#74-89 > > areResourcesFromLibrary() returns true and creates the wrong folders. > Forcing areResourcesFromLibrary() to return false creates the correct > folders and the tests get executed. Are we sure we don't ever need the `areResourcesFromLibrary() == true` case?
Assignee | ||
Comment 29•8 years ago
|
||
(In reply to Michael Comella (:mcomella) from comment #28) > re comment 24... > > (In reply to Sebastian Kaspari (:sebastian) from comment #4) > > This can be fixed here: > > https://dxr.mozilla.org/mozilla-central/source/mobile/android/tests/ > > background/junit4/src/org/mozilla/gecko/background/testhelpers/TestRunner. > > java#74-89 > > > > areResourcesFromLibrary() returns true and creates the wrong folders. > > Forcing areResourcesFromLibrary() to return false creates the correct > > folders and the tests get executed. > > Are we sure we don't ever need the `areResourcesFromLibrary() == true` case? Right now yes. If you look at the top javadoc, you can see that we copied it from here (and modified it): ttps://github.com/robolectric/robolectric/blob/8676da2daa4c140679fb5903696b8191415cec8f/robolectric/src/main/java/org/robolectric/RobolectricGradleTestRunner.java It doesn't look like we wrote those lines intentionally. However there's a new version of the test runner on GitHub: https://github.com/robolectric/robolectric/blob/master/robolectric/src/main/java/org/robolectric/RobolectricGradleTestRunner.java We could try to use this version and re-apply our customizations. But I'm hesitant to file a bug. Right now we can't win much more than just having tests running I guess? :)
Assignee | ||
Comment 30•8 years ago
|
||
(In reply to Michael Comella (:mcomella) from comment #27) > Maybe it's smart enough to know when classes files are unused and thus when > the resources it points to are unused (or it piggie-backs on our Proguard > optimizations which would zap the class). Oh yeah, it might be the interaction with proguard. I briefly tried to remove the resources but this broke the build because they are still referenced in the classes. If lint runs after proguard then for lint the classes might be gone and the resources are actually unused. I was wondering what's the best path forward here, but then I just saw that bug 1262343 already has some patches to remove the code. Reviewing... :)
Assignee | ||
Comment 31•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=50dd6ec4580a
Assignee | ||
Comment 32•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=750de926630e
Assignee | ||
Comment 33•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=c25cad87fe56
Assignee | ||
Comment 34•8 years ago
|
||
(In reply to Sebastian Kaspari (:sebastian) from comment #33) > https://treeherder.mozilla.org/#/jobs?repo=try&revision=c25cad87fe56 Okay, this chase is getting ridiculous. I'm inclined to downgrade the UnusedResources error to a warning and file a follow-up bug. A big problem right now is that we still keep the remote tabs empty view around (it will be re-used for the new panel later) and the new plugin seems to recognize that the ViewStub is never inflated.
Assignee | ||
Comment 35•8 years ago
|
||
@mcomella: What's your opinion? (comment 34).
Flags: needinfo?(michael.l.comella)
(In reply to Sebastian Kaspari (:sebastian) from comment #35) > @mcomella: What's your opinion? (comment 34). We could throw the unused resources into UnusedResourcesUtil (in a separate section) so that way we can keep the lint error as an error. Then we can file a follow-up bug to remove it once the empty view is removed, or the resources are used.
Flags: needinfo?(michael.l.comella)
Assignee | ||
Comment 37•8 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=afe2c46fd764
Assignee | ||
Comment 38•8 years ago
|
||
(In reply to Michael Comella (:mcomella) from comment #36) > (In reply to Sebastian Kaspari (:sebastian) from comment #35) > > @mcomella: What's your opinion? (comment 34). > > We could throw the unused resources into UnusedResourcesUtil (in a separate > section) so that way we can keep the lint error as an error. Then we can > file a follow-up bug to remove it once the empty view is removed, or the > resources are used. Aye, that's a good idea and much easier. :)
Assignee | ||
Comment 39•8 years ago
|
||
This is a temporary fix. The new plugin is able to find more unused resources. However we are not ready to remove all of them yet. Some of them will be in use again soon. This patch will add those files to UnusedResourcesUtil in order to suppress the lint error. Review commit: https://reviewboard.mozilla.org/r/49437/diff/#index_header See other reviews: https://reviewboard.mozilla.org/r/49437/
Attachment #8746459 -
Flags: review?(ahunt)
Assignee | ||
Comment 40•8 years ago
|
||
Comment on attachment 8743180 [details] MozReview Request: Bug 1263390 - Update releng manifests to point to new dependencies. r?mcomella Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47615/diff/1-2/
Assignee | ||
Comment 41•8 years ago
|
||
Comment on attachment 8743181 [details] MozReview Request: Bug 1263390 - Use Gradle 2.10 and Android Gradle plugin 2.0. r?mcomella Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47617/diff/1-2/
Assignee | ||
Comment 42•8 years ago
|
||
Comment on attachment 8743182 [details] MozReview Request: Bug 1263390 - TestRunner: Always use non-library configuration. r?mcomella Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47619/diff/1-2/
Assignee | ||
Comment 43•8 years ago
|
||
Comment on attachment 8743183 [details] MozReview Request: Bug 1263390 - Post: Fix new "Registered" lint errors. r?mcomella Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47621/diff/1-2/
Assignee | ||
Comment 44•8 years ago
|
||
Comment on attachment 8743184 [details] MozReview Request: Bug 1263390 - Post: Add new lint check "GoogleAppIndexingUrlError" to warning list. r?mcomella Review request updated; see interdiff: https://reviewboard.mozilla.org/r/47623/diff/1-2/
Assignee | ||
Comment 45•8 years ago
|
||
Comment on attachment 8746459 [details] MozReview Request: Bug 1263390 - Post: Add new unused resources to UnusedResourcesUtil. r?ahunt Review request updated; see interdiff: https://reviewboard.mozilla.org/r/49437/diff/1-2/
Updated•8 years ago
|
Attachment #8746459 -
Flags: review?(ahunt) → review+
Comment 46•8 years ago
|
||
Comment on attachment 8746459 [details] MozReview Request: Bug 1263390 - Post: Add new unused resources to UnusedResourcesUtil. r?ahunt https://reviewboard.mozilla.org/r/49437/#review46277
Assignee | ||
Comment 47•8 years ago
|
||
https://hg.mozilla.org/integration/fx-team/rev/4b3437e9dd4b56524469b522649eb870459dc2c5 Bug 1263390 - Update releng manifests to point to new dependencies. r=mcomella https://hg.mozilla.org/integration/fx-team/rev/cd9b6ddfb507fcc922195ad0f35d5e7ff2d20057 Bug 1263390 - Use Gradle 2.10 and Android Gradle plugin 2.0. r=mcomella https://hg.mozilla.org/integration/fx-team/rev/1ac17eedc75ce78ec2060c0773809e55984e860b Bug 1263390 - TestRunner: Always use non-library configuration. r=mcomella https://hg.mozilla.org/integration/fx-team/rev/58da59309c4615f784c827c4227d1b471d3688bb Bug 1263390 - Post: Fix new "Registered" lint errors. r=mcomella https://hg.mozilla.org/integration/fx-team/rev/ba848d207bff32315e33e682b61b2a4d82cf2cf2 Bug 1263390 - Post: Add new lint check "GoogleAppIndexingUrlError" to warning list. r=mcomella https://hg.mozilla.org/integration/fx-team/rev/830f7765555a3740103c31100118bf318cf785b2 Bug 1263390 - Post: Add new unused resources to UnusedResourcesUtil. r=ahunt
Depends on: 1268724
Comment 48•8 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/4b3437e9dd4b https://hg.mozilla.org/mozilla-central/rev/cd9b6ddfb507 https://hg.mozilla.org/mozilla-central/rev/1ac17eedc75c https://hg.mozilla.org/mozilla-central/rev/58da59309c46 https://hg.mozilla.org/mozilla-central/rev/ba848d207bff https://hg.mozilla.org/mozilla-central/rev/830f7765555a
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
status-firefox49:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → Firefox 49
Updated•5 years ago
|
Product: Firefox for Android → Firefox Build System
Target Milestone: Firefox 49 → mozilla49
You need to log in
before you can comment on or make changes to this bug.
Description
•