How can I solve this problem?
It seems that different versions of android support and firebase are troublesome. But I didn't write the dependencies: there were there once I created the project and linked it to firebase.
Change these two dependencies to the versions shown:
compile 'com.google.firebase:firebase-core:11.4.2'
compile 'com.firebaseui:firebase-ui:3.0.0'
In future questions, please post text instead of an image. That allows the text to be copied, used for evaluation and answering.
There are three version numbers that must be made consistent:
Firebase and Google Play libraries
Android Support libraries
FirebaseUI
The FirebaseUI documentation contains a table of compatible Firebase SDK versions. To determine the needed Support library version, you need to run a Gradle task to see the dependencies, or deduce the version by looking at the warnings Android Studio reports with red underlines on the dependencies in the app build.gradle file.
The latest version of Firebase is listed in the release notes. To keep this answer simple, I used 11.4.2. The latest is 11.6.2, but IIRC would require more extensive changes to your build setup for repos and classpaths.
Related
I am trying tog get my React Native app (with expo modules, but not built on expo) deployed to the Google Play Store, and I keep getting this error when I try to build...
The Android Gradle plugin supports only kotlin-android-extensions Gradle plugin version 1.6.20 and higher.
The following dependencies do not satisfy the required version:
project ':expo' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10
My issue us, the line that it seems to be referencing, project ':expo' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10 doesn't exist anywhere in my code, maybe in the node modules but I have no way of knowing.
I have absolutely no idea what kotlin is and never heard of it before this. I tried looking around for where to upgrade by kotlin-gradle-plugin, but thats nowhere in my app.json or package.json or any other config files. I saw some message boards with similar issues telling me to change this line inside of build.gradle
classpath('com.android.tools.build:gradle:7.3.0')
to make 7.3.0 match the version I need, but I firmly believe 7.3.0 is greater than 1.6.20, so I highly doubt that solution has any actual merits
Apparently, the current version of expo-modules are incompatible with the latest version of React Native (0.70.0) and how it compiles Android Builds. I downgraded react-native to 0.69.5. This ultimately led me to other issues but hopefully this can help somebody else.
I am learning one android project from youtube but that video is published 2 years ago. Now in order to use that code what changes i have to do in dependencies of libraries like room , Okhttp etcc and how can i update that project to latest verison easily?
If you add the dependencies as listed, they should still work - repositories keep the older versions, so projects built with a particular set of dependencies can pull those versions and build the same output no matter how old it is. Nothing has to update to a new version of a library - and many actively maintained projects will choose to stay on an older version of a dependency for lots of reasons!
That said, if you're creating a new project right now, some of the current Android framework libraries, plugins etc. might require certain versions of other dependencies - they might force you to meet some minimum version requirements, just because they're incompatible with older versions. You could either downgrade all the stuff that complains about needing a newer version of X, or you could upgrade your old dependencies, like you're asking about.
An easy way to do it is to open the Project Structure window in the File menu, and go to the Dependencies section. It'll show you all the dependencies in your project, identify which ones are out of date, and you can select an available version you want, or just update to the most recent version.
But if there is a compatibility issue, it might take some time to work out which versions are necessary, or even which versions are being pulled in by other libraries (e.g. a particular version of a library might internally have a dependency on a certain version of a library you're already using, and the most recent one is what your project ends up using). You can get some info about this from the output in the Build window, or maybe running the dependencies Gradle task if you want to explore that.
It wouldn't hurt to look at the project pages for your libraries and see what they say about installation and dependencies. Also, their method for adding them to a project might have changes, e.g. something that used the (now closed) JCenter repository might be using Jitpack now. Something to look at if you're having problems.
Also there's the issue that new versions of the libraries might have different APIs, or their behaviour might have changed. Even if fully updating everything goes smoothly, there might be stuff you need to fix in the code itself. Just a few things to keep in mind!
Thanks to the CVE-2021-44228, we decided to integrate the OWASP Dependency check gradle plugin to our Android projects.
We've been surprised to see that the mentioned CVE was present in an IntelliJ dependency :
One or more dependencies were identified with known vulnerabilities in app:
...
intellij-core-26.5.4.jar\META-INF/maven/log4j/log4j/pom.xml (pkg:maven/log4j/log4j#1.2.17, cpe:2.3:a:apache:log4j:1.2.17:::::::*) : CVE-2019-17571, CVE-2020-9488, CVE-2021-44228
We have three questions about it :
Should we be worried about this identified vulnerability ?
How is the intellij-core-26.5.4.jar pulled ?
Is this jar present in our final APK ?
IntelliJ is of course just an advanced text editor and has no relation to the android application itself, so no, I wouldn't worry. It might be an insecurity for JetBrains, though, but that's really their problem
CVE-2021-44228 is only applicable to Log4J2 versions 2.0-beta9 and newer upto and including 2.14.1, see: https://logging.apache.org/log4j/2.x/security.html
It does not apply to older versions such as Log4J 1.2.17.
The JAR file intellij-core-26.5.4.jar is part of IntelliJ IDEA itself, and is not something that is included with the APK of your own application when you create an Android application with IntelliJ or Android Studio.
I'm trying to do Firebase Admin SDK app (with Java). I have included all the code that is provided on Firebase website, have downloaded firebase-admin library, but the problem is that I'm always missing some other library too.
I've spent my all day so far just downloading libraries. I try to compile my code, and get an error that I'm missing a library, when I download it, I'm missing the next one, and so on.
I mean, shouldn't there be some list of libraries that you need to have in for Firebase Admin SDK app? Are we really expected to download libraries just one by one all day long? There is no such list in official docs, they've just provied dependency for firebase-admin library, and I'm missing a BUNCH of others.
So in beginning I've had just firebase-admin-4.0.3 library, and I had to download the rest of these that are on the External libraries list, all one by one, and not knowing its Maven dependency at first.
Okay, problem solved. The problem was that I was using any kind of dependency manager like Maven or Gradle. I mean I was using Maven but I in another project just to download dependencies and then manually include them in project(stupid).
I am wondering how to get libjingle when checking out the SDK from git.
What I ended up doing was to add libjingle as compile dependency in build.gradle:
compile 'io.pristine:libjingle:11139#aar'
but looks like the interface is changed from what you use in the SDK, so not sure about what libjingle version to use.
Thanks.
Ok, so what we do to avoid the repo getting huge because of carrying binaries, we only place the binaries in the releases. So I'd suggest downloading latest .tar.bz2 from here and copying over native and non-native libs from restcomm.android.sdk/libs/libjingle_peerconnection*.jar and restcomm.android.sdk/libs/jniLibs/armeabi-v7a/libjingle_peerconnection*.so to the same locations in the source tree. That way they should be discoverable in the Android Studio project.
These are going to be turned into maven dependencies at some point to avoid such issues.
Now about io.pristine:libjingle:11139#aar that you used, it's going to be a problem as this build is much earlier than what we have in restcomm-android-sdk and indeed the API is different in some respects.