javafxports 'android' gradle task requires "Android Support Library" which is retired from Android SDK Manager...what now? - android-support-library

The official Gluon docs say in the prerequisites for an Android build:
From the Android SDK Manager, install...from Extras the Android Support Library
However, it seems that this is retired from the sdk manager in lieu of the "Android Support Repository", a gradle repository. The javafxports plugin is apparently still looking for the old support library folder in the android SDK, as indicated by the error:
Cannot expand ZIP '<my AppData path>\Local\Android\sdk\extras\android\support\multidex\library\libs\android-support-multidex.jar' as it does not exist
which has this stackoverflow answer, indicating the sdk doesn't install it there anymore, even with "Obsolete" checked in the sdk manager. How can we get the javafxports gradle plugin to find the support library while it runs the 'android' build task? Sure we could manually move it there, but that'd be a really ugly process for using with a build server or dev team...

So far (current release version 1.2.0), the jfxmobile plugin has been working with the obsolete Android Support Library.
As now it is not only obsolete but not available any more for download, as Joeri Sykora commented, there is a snapshot available with a fix to use the new Support Repository.
Until release version 1.3.0 is out, you can use it providing you refer the repository to download this snapshot, so there is no need to download, build or install manually the plugin:
buildscript {
repositories {
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.3.0-SNAPSHOT'
}
}
This will work if you have installed with the Android SDK Manager Extras/Google Repository: check your Android sdk path for this folder: ANDROID_HOME/extras/google/m2repository, and the Extras/Android Support Repository: check for ANDROID_HOME/extras/android/m2repository/com/android/support/multidex/1.0.1/multidex-1.0.1.aar
And don't forget to apply the changes in the build script to your gradle project (Sync button on top-left of Gradle window in IntelliJ).

Related

Is it possible to force Gradle to downgrade version of some dependency with particular extension

I have dependencies on several plugins in project. These dependencies are put in plugins directory during project build. Here is the example:
plugin 'com.company:some-plugin:1.0#msi'
plugin 'com.company:some-plugin:1.0#pkg'
Now it is time to upgrade plugin version but for some reason I want to keep version of plugin for Mac (pkg) unchanged:
plugin 'com.company:some-plugin:2.0#msi'
plugin 'com.company:some-plugin:1.0#pkg'
How can I do it? Regular force does not help. What I see now is that Gradle upgrades version of all dependencies without considering of extension.
P.S. I use Gradle 5.2

NDK version is UNKNOWN message after updating to Android Studio 3.5 [duplicate]

After updating Android Studio and Gradle to 3.5,
I now get this error:
NDK Resolution Outcome: Project settings: Gradle model version=5.4.1, NDK version is UNKNOWN
I changed the Gradle version in build-gradle back to 3.4.2 but it didn't help.
I had similar problem and solved it by opening project using Import project (Gradle, Eclipse, etc.) instead of Open existing Android Studio project.
You can download NDK from File>Project Structur>Choosing SDK location from left panel and pressing Download from NDK location part.
I was having the same issue after upgrading my android studio. You just need to open local.properties & change ndk.dir path to your NDK path.
Code:
ndk.dir=D\:\\Android\\SDK\\ndk-bundle
sdk.dir=D\:\\Android\\SDK
I don't use NDK in my project, but I had the same problem. The problem disappeared after I updated the SDK version to the newest
compileSdkVersion 29
I had a previous answer (since deleted by moderators) where I detailed that there are workarounds (as listed here) that work for some but that there is an underlying bug in gradle because the workarounds don't work for everyone (specifically: none of them work for me)
The related google issue is here: https://issuetracker.google.com/issues/140403764
Update: As of today (20190920) they indicate that they have fixed the underlying issue, so I would expect a future release of gradle after today (20190920) will contain the fix.
Update2: Today (20190926) I received a response from a googler that the problematic code was in Android Studio and it is contained on the 3.6-release branch but is not available on any publicly available build at the moment (Android Studio 3.6 Canary 12 was released just before this fix was made). That lets you know which component to update and which versions to pay attention to, anyway. Looks like Android Studio 3.6 Canary 13 and later should have it https://issuetracker.google.com/issues/140403764#comment13
Until then you can try the workarounds but when there's a vendor bug and workarounds don't work you just have to wait for a vendor patch.
You need to install NDK using the SDK manager
I first got this issue after upgrading from Android Studio 3.5.0 to 3.5.1 today.
I simply did a rebuild from the top menu Build --> Rebuild Project.
This might not work for everyone depending on what caused the issue but it worked for mine. Give it a shot.
(Also, I do not use the NDK and never have downloaded it before. Still don't have it downloaded)
If you are not using NDK, ignore the error.
I have installed NDK to see if this makes any difference. There is no difference (except for an unused NDK folder of more than 2 GB :). So I removed it (i.e. delete the ndk folder and remove NDK environnent variable you have set previously).
After my recent Android Studio upgrade I had the same error message. I tried the other answers here and none worked. But #Zahra's answer pointed me to something that did work:
Go to File->Project Structure...
Under "Android NDK Location", click the dropdown and select the "DEFAULT NDK Recommended" option.
There was a slightly different path in there before I selected the default. Somewhere upgrading using the SDK manager, the path seems to have changed.
And now in the local.properties file sdk.dir is set to the same directory as the "DEFAULT NDK Recommended" option.
i fix it by going to file > Invalidate Caches\Restart
the IDE will restart and the problem will fix
I had same problem. My environment is:
Android Studio 3.5.1
Gradle 4.4
Android-Gradle-Plugin 3.1.2
CMake 3.10 and 3.6
I uninstalled CMake 3.10 by SDKManager. (installed CMake is 3.6 only)
Gradle sync and build succeeded.
(1)
android-gradle-plugin 3.1.2 used CMake 3.10.
In android-gradle-plugin 3.1.2 (or 3.1.+), feature of support for CMake 3.7 and higher is a preview feature.
(from output message of gradle assembleDebug or gradle sync.)
(2)
https://developer.android.com/studio/projects/add-native-code.html#use_a_custom_cmake_version
The SDK Manager includes the 3.6.0 forked version of CMake and version 3.10.2. Projects that don't set a specific CMake version in build.gradle are built with CMake 3.6.0.
Perhaps this behavior is android-gradle-plugin 3.3 or higher.
(it is from android-studio 3.3 that can be downloaded CMake 3.10)
android-gradle-plugin 3.1.2 used latest version from installed CMake.
I had the same issue on a mac as well.
Suggestion: Force the .gradle folder to rebuild itself..
This still shows the 'NDK Version is UNKNOWN' in the Event Log yet it builds successfully and doesn't give me any issues. (I don't have NDK downloaded)
Open your /Users/macuser/ folder
Press CMD + SHIFT + . (dot/period) to view hidden folders
DELETE .gradle folder
Restart Android Studio
This will cause Android Studio to rebuild and re-download your .gradle folder fixing your conflicting files in the process.
The problem is solved when I updated the Android Gradle Plugin Version from 3.1.4 to 3.4.0 and the Gradle Version from 4.4 to 5.1.1 at the same time. Of course, I downloaded the newest NDK(Side by Side) with SDK manager.
In my case, Android Studio was installed on a new mac. Just needed to download Android 9 (my target/compile SDK was 28) and build tools. The problem was solved after this.
In my case i fix it by upgrade to SdkVersion 29 and migrate to AndroidX.
After upgrading I've got the very same problem in one of my projects.
I solved it just deleting the line ndk.dir=D:\Android\SDK\ndk-bundle from the local.properties file.
I had the same error after adding a couple of libraries in the app-level build.gradle file.
The solution was just to clean the project.
In the menu bar choose: Build >> Clean Project
After that, the error was gone for me. I didn't do anything else.
I got this error (and several others) after importing a project from version control via Bitbucket hyperlink.
Once imported, close the project and re-import it using File > New > Import Project. After that everything built correctly.
(The NDK path was already specified properly, and only importing as new worked)
Meta:
Android Studio 3.5
Build #AI-191.8026.42.35.5791312, built on August 8, 2019
JRE: 1.8.0_202-release-1483-b49-5587405 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.13.6
Gradle 3.4.0
Problem solved for me after checking Suggestions in Project structure and updated the two suggested updates. Sorry I can't remember the module names as they disappeared as soon as I pressed update for each of them and graddle sync. started automatically and after this problem disappeared
downgrading ndk version from 20 to r17c and cmake version from 3.10 to 3.6.411459 solved the problem for me
I had the same problem after updating Android Studio.
My problem is solved by after updating Android SDK Build-Tools.
[Tools->SDK Manager->SDK Tools->Android SDK Build-Tools].
Then try to Clean the project
[Build->Clean Project].
Finally restart the Android Studio IDE......
I just closed project, closed android studio, restarted my PC, tracked my project and deleted the .Idea folder in "B:/PROJECTNAME/.idea" and voila.
Problem solved. It resyncs. N/B: my gradle is androidx. goodluck to someone.
Change the claaspath to 'com.android.tools.build:gradle:3.5.2' in build.gradle script
Ok. I recently downloaded the latest version of Android studio and got similar error. So eventually I created a new project.
Selected Kotlin Language then Jelly Bean (talking 'bout the options to pick from).
Then the whole synching began but the 1st sync failed and eventually it auto-synced again and everything began to work.
Did modify the default codes (text) since I'm a beginner but got no error messages.
The preview was OK and I continued my learning.
Sorry I couldn't explain it better. I'm just a beginner.
Oh! You need to be connected to the Internet for it to work.
If this problem occurred after an Android Studio upgrade and you initiated a plugin update from right bottom notification: Open File > Project structure, then change the Android Gradle version to your Android Studio version and downgrade the Gradle version to the previous one.
In my case, I downgraded the Android Gradle plugin from 3.5.3 to 3.2.1 and the Gradle version from 5.4.1 to 4.6.
I modified the gradle version of the gradle-wrapper.properties file from 4.1 to 4.6.
I had this problem and none of the solutions worked for me. Problem is, this error or warning might appear for very broad reasons. You can follow these steps to find out what is wrong:
NDK is missing
When Gradle starts to compile native dependencies it creates ".cxx" folder in your "app" folder. inside that folder you can find "ndk_locator_record.json" file, which is very strange type of log file. It is basically all the paths Gradle checks to find NDK folder. If there is any error or mismatch on NDK version numbers you can see in this file.
NDK build fails
for some unknown reasons (maybe bug in Gradle) ndk build does not show actual error on event log window, instead it shows a failure, like Gradle sync failed: executing external native build for ndkBuild .... following by NDK Resolution Outcome: Project settings: Gradle model version=5.4.1, NDK version is UNKNOWN.
In this case go back to .cxx > ndkBuild > debug > x86(x64 or any other cpu arch)
Here in this folder you can find "json_generation_record.json" file, it is same type of log, usually last entry has the actual error. For example, for me was
../../sdk/native/jni/OpenCV.mk: No such file or directory
make: *** No rule to make target '../../sdk/native/jni/OpenCV.mk'. Stop.
From here you have a starting point to find out what is going wrong under hood.
If the NDK is not install, and the Android Project requires it then first install the NDK.
On windows OS add the NDK path to PATH environment variable. This will fix the version issue.
In my case the NDK path is
C:\Users\\AppData\Local\Android\Sdk\ndk\21.0.6113669
I faced this issue before and I fixed it by making sure to have the right permissions to the app directory.
I am using macOS, so I did:
chmod -R 777 your_android_project
and the issue was gone.
i have this problem too when I updated the Android Gradle Plugin Version from 3.1.2 to 3.5.1
Here is how to solve this issue :
Go to gradle.properties file in root folder of your project and add android.useDeprecatedNdk=true

AndroidStudio 3.0 compatible gradle build tool

What is the highest version of
com.android.tools.build:gradle
that Android Studio 3.0 can support?
I'm currently using
classpath 'com.android.tools.build:gradle:3.1.0'
with gradle version 4.4.
I tried using
classpath 'com.android.tools.build:gradle:3.2.1'
but AndroidStudio warns about compatibility with gradle version 4.4, even when it's already set to 4.4. I tried using gradle 4.6, 4.10, but the warning keeps popping up. Is this a bug in AndroidStudio 3.0?
I'm asking this question because I'm trying to use androidx.databinding on AndroidStudio 3.0, and there hasn't been many results when googling this topic. Would appreciate any comments about this issue.
Thanks.
I have an Android project which is successfully building. I'm using the latest version of Android Studio (3.2.1), Gradle 4.7 and Gradle build tools 3.2.1. All working well.
build.gradle (buildscript subsection):
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
gradle/wrapper/gradle-wrapper.properties:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
So maybe your issue is that you need to upgrade your Gradle wrapper to download Gradle 4.7 instead?

Nativescript. Execution failed for task ':mergeF0DebugResources'

I am getting the following exception Execution failed for task ':mergeF0DebugResources.
When running 'tns build android' or 'tns run android --emulator'
tns version: 2.0.1
java version "1.8.0_92"
This error typically means your platform folder has been messed up. Typically in v2.0x of NativeScript this is typically caused because you added or removed a plugin. In the next (hopefully) version this should be fixed.
However, in the meantime to "fix" this error all you typically need to do is:
tns platform remove android
then
tns platform add android
The other possibility is that you do not have the android sdk installed properly. If you type "android" at a command/terminal window, does it show that you have all the following installed:
Android SDK Tools
Android SDK Platform Tools
Android SDK Build Tools
At least one of the SDK's, 4.4.2 and higher
Android Support Repository
Android Support Library
All of them must be showing that they are installed.

Gradle keep on asking update and downgrade?

I keep on getting "Gradle Sync error" so i checked had version 1.8. updated to 1.10, then it said i need 1.9, so i downgraded to 1.9 it said i need 1.8, when i downgrade to 1.8 it says i need 1.9.
15:28:09 Failed to refresh Gradle project 'Calendar'
You are using Gradle version 1.8, which is not supported. Please use version 1.9.
Please point to a supported Gradle version in the project's Gradle settings or in the project's Gradle wrapper (if applicable.)
Fix Gradle wrapper and re-import project Gradle settings
15:28:26 Failed to refresh Gradle project 'Calendar'
You are using Gradle version 1.10, which is not supported. Please use version 1.9.
Please point to a supported Gradle version in the project's Gradle settings or in the project's Gradle wrapper (if applicable.)
Fix Gradle wrapper and re-import project Gradle settings
15:28:39 Failed to refresh Gradle project 'Calendar'
Gradle version 1.8 is required. Current version is 1.9. If using the gradle wrapper, try editing the distributionUrl in
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Android
Studio\gradle\wrapper\gradle-wrapper.properties to gradle-1.8-all.zip.
Please fix the project's Gradle settings.
Gradle 1.10 is not yet supported in AS, Android Tools Developer team is working on it and probably will be available in next release.
As of now make sure all your build.gradle files in the project using gradle 1.9 as dependency
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.+'
}
}
Update :
Gradle 1.10 is now supported in Android studio after release 0.4.3, so going forward you can start using 1.10 plugin by using 0.8.+ in your classpath like this
classpath 'com.android.tools.build:gradle:0.8.+'

Resources