10.x build consuming a GradleReference version different to that specified

I finally figured out that the References UI in Visual Studio is no good for managing or even viewing gradle references, so fired up Water for the first time just to try to sort out problems with migrating a project from 9.x to 10.x.

First of all PLEASE fix the Visual Studio support for these features/changes critical to the basic operation of the build process. I’m afraid that Fire/Water simply are not yet ready for me to switch. Not to mention an ASP.NET project in the same solution that builds and runs just fine in VS fails to compile in Water with an “ambiguous overload” error. But that’s not my focus at this point - the (Android) problems I see in Visual Studio are also apparent in Water and any additional .net problems in Water are a side-show at this stage.

So that said…

I have added a GradleRepository for maven and GradleReference entries for (most of) the packages previously referenced in my build.gradle:

dependencies {
    compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:design:25.1.0'
    compile 'com.google.android.gms:play-services-location:10.0.1'
    compile 'com.google.android.gms:play-services-auth:10.0.1'
    compile 'com.google.android.gms:play-services-maps:10.0.1'
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'de.hdodenhof:circleimageview:2.1.0'
}

Becomes:

<GradleRepository Include="https://maven.google.com" />
<GradleReference Include="com.android.support:appcompat-v7:25.1.0" />
<GradleReference Include="com.android.support:design:25.1.0" />
<GradleReference Include="com.google.android.gms:play-services-location:10.0.1" />
<GradleReference Include="com.google.android.gms:play-services-auth:10.0.1" />
<GradleReference Include="com.google.android.gms:play-services-maps:10.0.1" />

When I build I am experiencing errors with resources related to the appcompat-v7 package (although this is not immediately apparent from the error info in VS):

This is the extent of the error info available in Visual Studio (in the “Error List” view).

In Water I get the same errors but can also see some additional information that is very puzzling (the below is a single error which I have elided to show relevant information to fit more comfortably):

 E: aapt: Error retrieving parent for item: No resource found ...
 'android:Widget.Material.Spinner.Underlined'. [C:\ ... \EBuild\ ... \Debug\
 Cooper-Android\aar\appcompat-v7-25.3.1\res\values-ldltr-v21\values-ldltr-v21.xml (3)]
                                 ^^^^^^ !?

The puzzling part is in the second piece of information identifying the resource in which the problem was presumably identified and the fact that this appears to be using a different version of the package than the one I requested.

25.3.1 vs 25.0.1

Every error I am seeing has this version mis-match referencing the appcompat package.

Update: Having returned to VS I’ve now realised that the same info is present in the Build Output, albeit in a different order (again, elided for brevity):

C:\ ... \EBuild\Obj\ ... \Debug\Cooper-Android\aar\appcompat-v7-25.3.1\res\values-v23\values-v23.xml(37,0):
error : aapt: Error retrieving parent for item: No resource found ... 'android:Widget.Material.Spinner.Underlined'.

I need to understand what is going on and be able to rule this apparent versioning problem out as the cause of my build issues (if I can, then I suspect that the issue will be that I need to specify a particular compileSdkVersion - how ? - but I don’t want to go chasing that rabbit until I’ve determined that it is actually necessary).

Either way this looks odd.

Update: . Backtracking through the Water build output I found an earlier error talking about being unable to “adjust existing dependency from 25.3.1 to 25.2.0”, when trying to bring in the dependency on support-v4.

Setting aside that neither of these version numbers made sense in the context of the dependencies I had stated in my references, I thought perhaps I had some (new) dependency (new, because this never used to be a problem) as a result of updating SDK tools etc. But backtracking even further, I can see that the very first package that is introduced seems to be ignoring the specified version and bringing in the latest release version:

       Task RemObjects.EBuild.Elements.ElementsProcessGradleReferences started for Ping.Android, Cooper-Android.
       Registering Maven Repository 'https://maven.google.com/'
	D: Checking <MavenRepository file://Mac/Dropbox/dev/android%2Dsdk/extras/android/m2repository/>
	D: Package com.android.support:appcompat-v7 found in <MavenRepository file://Mac/Dropbox/dev/android%2Dsdk/extras/android/m2repository/>
	D: Available Versions of 'com.android.support:appcompat-v7': 26.0.0-alpha1, **25.3.1**, 25.3.0, 25.2.0, 25.1.1, 25.1.0, **25.0.1**, 25.0.0, 24.2.1, 24.2.0, 24.1.1, 24.1.0, 24.0.0-beta1, 24.0.0-alpha2, 24.0.0-alpha1, 24.0.0, 23.4.0, 23.3.0, 23.2.1, 23.2.0, 23.1.1, 23.1.0, 23.0.1, 23.0.0, 22.2.1, 22.2.0, 22.1.1, 22.1.0, 22.0.0, 21.0.3, 21.0.2, 21.0.0, 20.0.0, 19.1.0, 19.0.1, 19.0.0, 18.0.0.
	   Adding dependency com.android.support:support-annotations:25.3.1 from com.android.support:appcompat-v7:25.3.1.

So the very first dependency resolved is the appcompat-v7, a 26.0.0-alpha1 (pre-release) version is found along with a host of other versions. The latest release version is 25.3.1 and this is the version that is brought in, despite the reference explicitly identifying a valid, older version (25.0.1).

And having now also turned on diagnostic level build output in Visual Studio I can indeed now see that this is the same problem in my Visual Studio build.

Bottom line: It appears that the GradleReference support in EBuild is ignoring specified version numbers and always bringing in the latest release version.

So, that being the case I could perhaps then conclude that my build is using the latest release versions of all referenced dependencies. In which case my problem could well be that I need to specify a compileSdkVersion (which seems to be the indicated solutions based on people using “native” Android Studio development tooling and experiencing similar resource errors using appcompat-v7).

In their case they simply change a compileSdkVersion setting in their gradle.

Unless/Until the package version referencing issue is resolved, where do I make the equivalent setting change in Elements ? :confused:

Elements 10.x (2297) / Visual Studio 2015 / (Water for diagnostics purposes only)

And that error will never be fixed, if not properly reported :(. That said, Fire, Water and VS use the exact sam compiler, so that seems weird…

Somewhat as designed. a plain version number means “this version or higher” and will pick the latest version. if you want a specific version, use [] around the number, eg:

<GradleReference Include="com.android.support:appcompat-v7:[25.1.0]" />

This is explained here.

lol, by “somewhat” you mean “exactly” (as designed). Thanks for not simply throwing an “RTFM #ffs” at me! :slight_smile:

So the good news is that .2297 now has me at the same point I was at with 9.x.

The bad news is that I am at the same point I was with 9.x. That is, Google Sign-In is still not working and the debugger experience is the same.

The former is not an Elements problem - that’s going to be something to do with some change in the Google services/Api’s that I need to figure out. The latter is the subject of the original debugging thread so I’ll pick that up back over there.

To repay the patience on the gradle version formatting I’ll see if I can provide some more info on that .net compilation problem. :slight_smile:

I set out to get info on .net build problems in Water not evident in VS 2015 (both using 10.0.0.2297), and things have become even more puzzling as I immediately saw Gradle reference problems in Water that I was not seeing in VS 2015 (building the same solution and projects):

In Water, the build failed with the following:

   Adding dependency com.android.support:support-v4:25.0.1 from com.android.support:appcompat-v7:25.0.1.
   Adding dependency com.android.support:support-compat:25.0.1 from com.android.support:support-v4:25.0.1.
   Adding dependency com.android.support:support-annotations:25.0.1 from com.android.support:support-compat:25.0.1.
   Adding dependency com.android.support:support-media-compat:25.0.1 from com.android.support:support-v4:25.0.1.
   Adding dependency com.android.support:support-core-utils:25.0.1 from com.android.support:support-v4:25.0.1.
   Adding dependency com.android.support:support-core-ui:25.0.1 from com.android.support:support-v4:25.0.1.
   Adding dependency com.android.support:support-fragment:25.0.1 from com.android.support:support-v4:25.0.1.
   Adding dependency com.android.support:support-vector-drawable:25.0.1 from com.android.support:appcompat-v7:25.0.1.
   Adding dependency com.android.support:animated-vector-drawable:25.0.1 from com.android.support:appcompat-v7:25.0.1.
   Adding dependency com.android.support:recyclerview-v7:25.0.1 from com.android.support:design:25.0.1.
   Adding dependency com.android.support:transition:25.0.1 from com.android.support:design:25.0.1.
   Adding dependency com.google.android.gms:play-services-base:10.0.1 from com.google.android.gms:play-services-location:10.0.1.
   Adding dependency com.google.android.gms:play-services-basement:10.0.1 from com.google.android.gms:play-services-base:10.0.1.
W: Dependency com.android.support:support-v4:24.0.0: Version number mismatch between existing gradle reference com.android.support:support-v4:25.0.1].
E: Cannot adjust existing dependency com.android.support:support-v4 from version 25.0.1] to 24.0.0].
   Adding dependency com.google.android.gms:play-services-tasks:10.0.1 from com.google.android.gms:play-services-base:10.0.1.
   Adding dependency com.google.android.gms:play-services-auth-base:10.0.1 from com.google.android.gms:play-services-auth:10.0.1.
E: Gradle package com.github.bumptech.glide:glide Version [3.7.0] not found in any repositories.
   Project 'Ping.Android' failed to build.

After getting this error in Water I went back to VS2015 to make sure I wasn’t going bonkers and completely dreamed the last hour spent successfully building and digging deeper into the debugging issue. Only to find that VS 2015 now wouldn’t even load the projects in the solution, complaining about being unable to load Everwood 4.0.779 (because the file does not exist).

I had not installed/re-installed or changed anything between my last successful build (and deploy/test) in VS 2015 and then closing VS 2015 and firing up Water and then closing Water and returning to VS 2015

To try to fix VS 2015 I tried re-installing x.2297 but this made no difference (the install was successful, apparently, but VS 2015 still could not load my projects and was still complaining about being unable to find that Everwood file).

I had to install 9.3 over the top (downgrade) and then re-reinstalled 10.x.2297 which fixed VS2015 but now I do now indeed see the same Gradle reference errors. Errors that absolutely were not occurring before.

Regardless, I fixed the support-v4 error by updating to 11.0.4 for the Play Services packages. The fact that this has fixed this is puzzling because I cannot understand how it managed to build in the first place.

Now the only error I have is an inability to locate the glide package (or circleimageview if I list that one before glide). Again, this was not a problem before, but it seemed that I was missing a Maven Central repo reference, so I added:

<GradleRepository Include="https://repo.maven.apache.org/maven2/" />

Which didn’t help, and after upping the build output to diagnostic I can see that EBuild was in fact already checking Maven Central, albeit using a different url. However, whichever of the two urls is used, if you browse the repos the package I am referencing is very clearly present:

https://repo1.maven.org/maven2/com/github/bumptech/glide/glide/
https://repo.maven.apache.org/maven2/com/github/bumptech/glide/glide/

The version I am specifying is also present (3.7.0).

If there is some net/comms issue this isn’t reflected in the build output and I have no trouble accessing the above url’s from a browser in the same VM. So why can’t EBuild resolve this reference ? (and curiously, but perhaps less importantly, why didn’t I have these problems before but now do ?)

There’s also some odd looking entries in the log, so I’ve included it all below:

Full Build Log from the Gradle Reference Section:

   Registering Maven Repository 'https://maven.google.com/'
   Registering Maven Repository 'https://repo.maven.apache.org/maven2/'
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:appcompat-v7 found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:appcompat-v7': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0, 24.1.1, 24.1.0, 24.0.0-beta1, 24.0.0-alpha2, 24.0.0-alpha1, 24.0.0, 23.4.0, 23.3.0, 23.2.1, 23.2.0, 23.1.1, 23.1.0, 23.0.1, 23.0.0, 22.2.1, 22.2.0, 22.1.1, 22.1.0, 22.0.0, 21.0.3, 21.0.2, 21.0.0, 20.0.0, 19.1.0, 19.0.1, 19.0.0, 18.0.0.
   Adding dependency com.android.support:support-annotations:25.2.0 from com.android.support:appcompat-v7:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:support-annotations found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:support-annotations': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0, 24.1.1, 24.1.0, 24.0.0-beta1, 24.0.0-alpha2, 24.0.0-alpha1, 24.0.0, 23.4.0, 23.3.0, 23.2.1, 23.2.0, 23.1.1, 23.1.0, 23.0.1, 23.0.0, 22.2.1, 22.2.0, 22.1.1, 22.1.0, 22.0.0, 21.0.3, 21.0.2, 21.0.0, 20.0.0, 19.1.0.
   Adding dependency com.android.support:support-v4:25.2.0 from com.android.support:appcompat-v7:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:support-v4 found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:support-v4': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0, 24.1.1, 24.1.0, 24.0.0-beta1, 24.0.0-alpha2, 24.0.0-alpha1, 24.0.0, 23.4.0, 23.3.0, 23.2.1, 23.2.0, 23.1.1, 23.1.0, 23.0.1, 23.0.0, 22.2.1, 22.2.0, 22.1.1, 22.1.0, 22.0.0, 21.0.3, 21.0.2, 21.0.0, 20.0.0, 19.1.0, 19.0.1, 19.0.0, 18.0.0, 13.0.0.
   Adding dependency com.android.support:support-compat:25.2.0 from com.android.support:support-v4:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:support-compat found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:support-compat': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0.
D: Dependency {0} is already referenced.
   Adding dependency com.android.support:support-media-compat:25.2.0 from com.android.support:support-v4:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:support-media-compat found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:support-media-compat': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
   Adding dependency com.android.support:support-core-utils:25.2.0 from com.android.support:support-v4:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:support-core-utils found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:support-core-utils': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
   Adding dependency com.android.support:support-core-ui:25.2.0 from com.android.support:support-v4:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:support-core-ui found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:support-core-ui': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
   Adding dependency com.android.support:support-fragment:25.2.0 from com.android.support:support-v4:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:support-fragment found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:support-fragment': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
   Adding dependency com.android.support:support-vector-drawable:25.2.0 from com.android.support:appcompat-v7:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:support-vector-drawable found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:support-vector-drawable': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0, 24.1.1, 24.1.0, 24.0.0-beta1, 24.0.0-alpha2, 24.0.0-alpha1, 24.0.0, 23.4.0, 23.3.0, 23.2.1, 23.2.0.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
   Adding dependency com.android.support:animated-vector-drawable:25.2.0 from com.android.support:appcompat-v7:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:animated-vector-drawable found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:animated-vector-drawable': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0, 24.1.1, 24.1.0, 24.0.0-beta1, 24.0.0-alpha2, 24.0.0-alpha1, 24.0.0, 23.4.0, 23.3.0, 23.2.1, 23.2.0.
D: Dependency {0} is already referenced.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:design found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:design': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0, 24.1.1, 24.1.0, 24.0.0-beta1, 24.0.0-alpha2, 24.0.0-alpha1, 24.0.0, 23.4.0, 23.3.0, 23.2.1, 23.2.0, 23.1.1, 23.1.0, 23.0.1, 23.0.0, 22.2.1, 22.2.0.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
   Adding dependency com.android.support:recyclerview-v7:25.2.0 from com.android.support:design:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:recyclerview-v7 found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:recyclerview-v7': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0, 24.1.1, 24.1.0, 24.0.0-beta1, 24.0.0-alpha2, 24.0.0-alpha1, 24.0.0, 23.4.0, 23.3.0, 23.2.1, 23.2.0, 23.1.1, 23.1.0, 23.0.1, 23.0.0, 22.2.1, 22.2.0, 22.1.1, 22.1.0, 22.0.0, 21.0.3, 21.0.2, 21.0.0.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
   Adding dependency com.android.support:transition:25.2.0 from com.android.support:design:25.2.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Package com.android.support:transition found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Available Versions of 'com.android.support:transition': 26.0.0-alpha1, 25.3.1, 25.3.0, 25.2.0, 25.1.1, 25.1.0, 25.0.1, 25.0.0, 24.2.1, 24.2.0.
D: Dependency {0} is already referenced.
D: Dependency {0} is already referenced.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Package com.google.android.gms:play-services-location found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Available Versions of 'com.google.android.gms:play-services-location': 11.0.4, 11.0.2, 11.0.1, 11.0.0, 10.2.6, 10.2.4, 10.2.1, 10.2.0, 10.0.1, 10.0.0, 9.8.0, 9.6.1, 9.6.0, 9.4.0, 9.2.1, 9.2.0, 9.0.2, 9.0.1, 9.0.0, 8.4.0, 8.3.0, 8.1.0, 7.8.0, 7.5.0, 7.3.0, 7.0.0, 6.5.87.
   Adding dependency com.google.android.gms:play-services-base:[11.0.4] from com.google.android.gms:play-services-location:11.0.4.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Package com.google.android.gms:play-services-base found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Available Versions of 'com.google.android.gms:play-services-base': 11.0.4, 11.0.2, 11.0.1, 11.0.0, 10.2.6, 10.2.4, 10.2.1, 10.2.0, 10.0.1, 10.0.0, 9.8.0, 9.6.1, 9.6.0, 9.4.0, 9.2.1, 9.2.0, 9.0.2, 9.0.1, 9.0.0, 8.4.0, 8.3.0, 8.1.0, 7.8.0, 7.5.0, 7.3.0, 7.0.0, 6.5.87.
   Adding dependency com.google.android.gms:play-services-basement:[11.0.4] from com.google.android.gms:play-services-base:11.0.4.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Package com.google.android.gms:play-services-basement found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Available Versions of 'com.google.android.gms:play-services-basement': 11.0.4, 11.0.2, 11.0.1, 11.0.0, 10.2.6, 10.2.4, 10.2.1, 10.2.0, 10.0.1, 10.0.0, 9.8.0, 9.6.1, 9.6.0, 9.4.0, 9.2.1, 9.2.0, 9.0.2, 9.0.1, 9.0.0, 8.4.0, 8.3.0, 8.1.0.
D: Dependency {0} is already referenced.
   Adding dependency com.google.android.gms:play-services-tasks:[11.0.4] from com.google.android.gms:play-services-base:11.0.4.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Package com.google.android.gms:play-services-tasks found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Available Versions of 'com.google.android.gms:play-services-tasks': 11.0.4, 11.0.2, 11.0.1, 11.0.0, 10.2.6, 10.2.4, 10.2.1, 10.2.0, 10.0.1, 10.0.0, 9.8.0, 9.6.1, 9.6.0, 9.4.0, 9.2.1, 9.2.0, 9.0.2, 9.0.1, 9.0.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Package com.google.android.gms:play-services-auth found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Available Versions of 'com.google.android.gms:play-services-auth': 11.0.4, 11.0.2, 11.0.1, 11.0.0, 10.2.6, 10.2.4, 10.2.1, 10.2.0, 10.0.1, 10.0.0, 9.8.0, 9.6.1, 9.6.0, 9.4.0, 9.2.1, 9.2.0, 9.0.2, 9.0.1, 9.0.0, 8.4.0, 8.3.0.
   Adding dependency com.google.android.gms:play-services-auth-base:[11.0.4] from com.google.android.gms:play-services-auth:11.0.4.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Package com.google.android.gms:play-services-auth-base found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Available Versions of 'com.google.android.gms:play-services-auth-base': 11.0.4, 11.0.2, 11.0.1, 11.0.0, 10.2.6, 10.2.4, 10.2.1, 10.2.0, 10.0.1, 10.0.0, 9.8.0, 9.6.1, 9.6.0, 9.4.0, 9.2.1, 9.2.0, 9.0.2, 9.0.1, 9.0.0.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Package com.google.android.gms:play-services-maps found in <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Available Versions of 'com.google.android.gms:play-services-maps': 11.0.4, 11.0.2, 11.0.1, 11.0.0, 10.2.6, 10.2.4, 10.2.1, 10.2.0, 10.0.1, 10.0.0, 9.8.0, 9.6.1, 9.6.0, 9.4.0, 9.2.1, 9.2.0, 9.0.2, 9.0.1, 9.0.0, 8.4.0, 8.3.0, 8.1.0, 7.8.0, 7.5.0, 7.3.0, 7.0.0, 6.5.87.
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/google/m2repository/>
D: Checking <MavenRepository file://mac/home/dropbox/dev/android%2Dsdk/extras/android/m2repository/>
D: Checking <MavenRepository https://jcenter.bintray.com/>
D: Checking <MavenRepository https://repo1.maven.org/maven2/>
D: Checking <MavenRepository https://maven.google.com/>
D: Checking <MavenRepository https://repo.maven.apache.org/maven2/>
C:\Program Files (x86)\MSBuild\RemObjects Software\Elements\RemObjects.Elements.Cooper.Android.targets(42,3): error : Gradle package com.github.bumptech.glide:glide Version [3.7.0] not found in any repositories.
E: Gradle package com.github.bumptech.glide:glide Version [3.7.0] not found in any repositories.

Gradle Entries in my Project

<GradleRepository Include="https://maven.google.com/" />
<GradleRepository Include="https://repo.maven.apache.org/maven2/" />

<GradleReference Include="com.android.support:appcompat-v7:[25.2.0]" />
<GradleReference Include="com.android.support:design:[25.2.0]" />
<GradleReference Include="com.google.android.gms:play-services-location:[11.0.4]" />
<GradleReference Include="com.google.android.gms:play-services-auth:[11.0.4]" />
<GradleReference Include="com.google.android.gms:play-services-maps:[11.0.4]" />
<GradleReference Include="com.github.bumptech.glide:glide:[3.7.0]" />
<GradleReference Include="de.hdodenhof:circleimageview:[2.1.0]" />

I’m confused that you say “.NET”, but then talk about Gradle. Are these two different projects and you switch gears, or what am I missing?

This one makes sense. you’re requesting the exact version 25.0.1, but something else asks for 24.0.0] and thus isn’t happy with the newer version.

that’s probably the right fix.

this I cannot repro. I just created a new Android project, added just the gradle ref, and it resolves/builds fine, out of the box:

                  -> Task RemObjects.EBuild.Elements.ElementsResolveCooperReferencesForTarget started for com.remobjects.androidapplication35, Cooper-Android.
                     Reference 'android' was resolved to '/Users/mh/Library/Android/sdk/platforms/android-27/android.jar' for target 'Cooper-Android'.
                     Reference 'cooper' was resolved to '/Users/mh/Code/Elements/Bin/References/Cooper/cooper.jar' via XML for target 'Cooper-Android'.
                  <- Task RemObjects.EBuild.Elements.ElementsResolveCooperReferencesForTarget finished for com.remobjects.androidapplication35, Cooper-Android, took 0.0180s (0.0184s).
                  -> Task RemObjects.EBuild.Elements.ElementsProcessGradleReferences started for com.remobjects.androidapplication35, Cooper-Android.
D:                   Checking <MavenRepository file:///Users/mh/Library/Android/sdk/extras/android/m2repository/>
D:                   Checking <MavenRepository file:///Users/mh/Library/Android/sdk/extras/google/m2repository/>
D:                   Checking <MavenRepository file:///Users/mh/Library/Android/sdk/extras/m2repository/>
D:                   Checking <MavenRepository https://jcenter.bintray.com/>
D:                   Package com.github.bumptech.glide:glide found in <MavenRepository https://jcenter.bintray.com/>
D:                   Available Versions of 'com.github.bumptech.glide:glide': 3.6.1, 3.6.0, 3.5.2, 3.5.1, 3.5.0, 3.4.0, 3.3.1, 3.3.0.
D:                   Package com.github.bumptech.glide:glide version [3.7.0] could not be matched in repository <MavenRepository https://jcenter.bintray.com/>.
D:                   Checking <MavenRepository https://repo1.maven.org/maven2/>
D:                   Package com.github.bumptech.glide:glide found in <MavenRepository https://repo1.maven.org/maven2/>
D:                   Available Versions of 'com.github.bumptech.glide:glide': 4.7.1, 4.7.0, 4.6.1, 4.6.0, 4.5.0, 4.4.0, 4.3.1, 4.3.0, 4.2.0, 4.1.1, 4.1.0, 4.0.0-RC1, 4.0.0-RC0, 4.0.0, 3.8.0, 3.7.0, 3.6.1, 3.6.0, 3.5.2, 3.5.1, 3.5.0, 3.4.0, 3.3.1, 3.3.0.
                     Adding .jar reference glide-3.7.0.jar.
                     All Package References:
                       com.github.bumptech.glide:glide:[3.7.0]
                  <- Task RemObjects.EBuild.Elements.ElementsProcessGradleReferences finished for com.remobjects.androidapplication35, Cooper-Android, took 2.1588s (2.1595s).

https://jcenter.bintray.com/ and Central Repository: are the two repositories that EBuild checks by default. Int looks like the first one only has outdated versions (odd, but whatever), but the second one has whats needed…

Since that has nothing to do with this issue, can you start a new thread with a clearer description of the issue, that I can point someone form the VS team at? Suffice to say that Everwood .779 is daily new, and Elements 9.x won’t have shipped with that; I doubt that reinstalling 9.3 would restore that sep civic version. Also, I don’t see how simply launching Water could remove that file and break VS, since Water has nothing to do with and knows nothing about this .dll. But that’s for someone else to investigate…

The .net problem is referencing that “ambiguous overload” error that I get when building a .net project in Water that I do not get when building the same project in VS2015. Completely separate issue than my Android problems and not a concern for me right now because I won’t be using Water for some time at least, but I was going to try to gather some extra info to share with you on that having (I thought) resolved my Android issues.

Sadly the Android problems continued so I got diverted back to that.

As you can see from my build log, the gradle references were not able to be resolved. A bit of an “It works on my machine” problem ? :wink:

As I mentioned, it wasn’t a problem exclusive the Glide package. The build failed on this reference because it was the first (non-Android) maven reference. If I moved circleimageview in front of glide in the project, then this would fail in the same way.

I suppose it could have been a problem on the Maven Central end that has now been resolved (I haven’t had chance to re-check building the project as yet), but isn’t it http(s) based ? There didn’t seem to be any problems when browsing Maven Central (in Chrome) and I would have thought that comms errors might have been reflected in the build output if that were the case. Will check and update if the problem has fixed itself.

I take it those dependency {0} entries in the log, are normal / no cause for concern ?

it is for me though, because compiler errors should not differ between VS and Water – it’s the same compiler. so i’d like to get to the bottom of this.

will reply to the rest when i’m back at the laptop…

Could be, but I don’t see how. I’ll add some more extensive logging and send you a new EBuild build. That one won’t be fully usable, but id be curious to see what the output is if you run it just as “ebuild.exe <path your .sln>

I’m not sure I fully follow. but here, it resolves fine even if I paste in all the exact gradle refs you have and not just the single one.

Yeah, but that does seem unlikely.

that is of course a bug (fixed now), but I’d expect this are unrelated, yes.

New EBuild is at https://www.dropbox.com/s/g7338eqeub1iqnx/Custom%20EBuild%20for%20Jolyon%2C%20v1.zip?dl=0

you should see something like this in the output

D:                   Checking <MavenRepository https://repo1.maven.org/maven2/>
>> HasPackageWithName 'com.github.bumptech.glide:glide'
>> Url 'https://repo1.maven.org/maven2/com/github/bumptech/glide/glide/'
>> MetaDataUrl 'https://repo1.maven.org/maven2/com/github/bumptech/glide/glide/maven%2Dmetadata.xml'
>> lResponse 'True' Code 200
D:                   Package com.github.bumptech.glide:glide found in <MavenRepository https://repo1.maven.org/maven2/>
D:                   Available Versions of 'com.github.bumptech.glide:glide': 4.7.1, 4.7.0, 4.6.1, 4.6.0, 4.5.0, 4.4.0, 4.3.1, 4.3.0, 4.2.0, 4.1.1, 4.1.0, 4.0.0-RC1, 4.0.0-RC0, 4.0.0, 3.8.0, 3.7.0, 3.6.1, 3.6.0, 3.5.2, 3.5.1, 3.5.0, 3.4.0, 3.3.1, 3.3.0.
D:                   Checking <MavenRepository file:///Users/mh/Library/Android/sdk/extras/android/m2repository/>
>> HasPackageWithName 'foo:bar'
>> Url 'file:///Users/mh/Library/Android/sdk/extras/android/m2repository/foo/bar/'
D:                   Checking <MavenRepository file:///Users/mh/Library/Android/sdk/extras/google/m2repository/>
>> HasPackageWithName 'foo:bar'
>> Url 'file:///Users/mh/Library/Android/sdk/extras/google/m2repository/foo/bar/'
D:                   Checking <MavenRepository file:///Users/mh/Library/Android/sdk/extras/m2repository/>
>> HasPackageWithName 'foo:bar'
>> Url 'file:///Users/mh/Library/Android/sdk/extras/m2repository/foo/bar/'
D:                   Checking <MavenRepository https://jcenter.bintray.com/>
>> HasPackageWithName 'foo:bar'
>> Url 'https://jcenter.bintray.com/foo/bar/'
>> MetaDataUrl 'https://jcenter.bintray.com/foo/bar/maven%2Dmetadata.xml'
>> lResponse 'False' Code 

I’d be custioius to see what the Url and MetaDataUrl is, when it fails for you.

Thanks for that, but sadly the Url and MetaDataUrl both appear fine and copy/pasting them to a browser takes me straight to the expected package metadata file. But still no joy. :cry:

See attached log file, although I don’t think this gets us any further forward. :frowning:

log.txt (22.9 KB)

Also could I suggest that the “built in” repo urls be made external/configurable ? (if they aren’t already) and ideally overridable at the project level (to avoid wasting time checking repos that are known to be irrelevant and/or accomodate repos that might change their canonical Urls, e.g. Maven Central).

well, at leats we know that it uses the right url, now all we need to figure out is why it fails to load… ill add more logging for that tomorrow…

well, they are -thats what you did whne you provided your own GradleRepository entries?

I can add repositories, but I can’t stop EBuild checking the ones it already knows about or change the Url’s for them. :wink:

Why would I want to ?

In an enterprise setting it’s quite possible that external repositories might be blocked with an internal, curated repository required to be used. This might be something of an edge case (but for context, in my day job I work at a bank … - I’m not using Elements at work though, so mention this only as a potential context, not an actual, current scenario :slight_smile: ).

More generally, if the default repos are explicit in the templates (i.e. “genuine” defaults as opposed to “built in”) then irrespective of EBuild version (that supports Gradle References) I can see which repos will be checked for a given project without having to know which repos that particular version of EBuild supports.

And I can avoid wasting build time checking repos that I know/discover are problematic in a particular case by simply removing them. jcenter.bintray in this case, for example.

Curious, this seems to be a Windows vs Mac (or .NET vs Mono) issue. i can repro that on WIndowsd, this does fail to load. very strange. investigating now.

the plot thickens: this seems to be an HTTPS issue:

D:                   Checking <MavenRepository https://repo1.maven.org/maven2/>
lMetaDataUrl https://repo1.maven.org/maven2/com/github/bumptech/glide/glide/maven%2Dmetadata.xml
!> Exception of type System.Security.Authentication.AuthenticationException on thread 0CE0
!> Message: A call to SSPI failed, see inner exception.

As a workaround, can you try setting the registry key described at https://stackoverflow.com/questions/37925505/a-call-to-sspi-failed-see-inner-exception-the-local-security-authority-cannot ?

I don’t want the default in the template, as that becomes a maintenance nightmare (both for us to update templates, and for users, if default repos change over time). But I’ll add an option to define your own complete set of repositories in CooperPaths.xml.

Fixed for vNext. it seems .NET does not support TLS1.2 and later by default. Mono does. I won’t comment on how f------ stupid that is, in 2018.

Thanks, logged as bugs://80467

I tried it, but it didn’t make any difference either to the VS build or using the version you provided. :frowning:

The Diffie-Hellman sub-key mentioned in the MS advisory (what the SO answer is referring to) didn’t exist in my VM, so I’m wondering if things might have moved on in this area since 2015.

I’ll wait for vNext. Many thanks! :slight_smile:

Fairynuff. Managing defaults is always a challenge. :slight_smile:

CooperPaths.xml sounds like a great option. Anticipating a potential UI for managing these things and/or a need to manage repos at the project level, could I suggest a label/name as well as a Url for each repo, e.g.:

<paths>
    <gradlerepository name="Maven Central" url="https://repo.maven.apache.ord/maven2"/>
<paths>

Then in a project, named repositories (or additional ones) could be enabled/disabled:

<ItemGroup>
    <GradleRepository Name="Maven Central" Enabled="false" />        <!-- disable a "global repo" -->
    <GradleRepository Include="https://repo.maven.foo.org/maven" />  <!-- additional/alternative repo just for this project -->
</ItemGroup>

If a named repository reference in a project does not match any CooperPaths named repository then emit a warning to that effect, but otherwise ignore it (i.e. not a build failure).

Just some ideas/suggestions to ponder. I really appreciate the help and responsiveness, as always. :slight_smile:

bugs://E21603 was closed as fixed.