I migrated to android studio 3.1
I use an external dependency which uses API 24. I can not do code changes here.
I need to build my app with API 26.
is it possible? how can this be done?
During various trials, I got this error
Gradle: Error: more than one library with the package name
'recyclerview'
app build.gradle
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.google.android.gms:play-services-gcm:15.0.1'
implementation 'com.google.android.gms:play-services-location:15.0.1'
implementation 'com.google.android.gms:play-services-places:15.0.1'
implementation project(path: ':libs:externalLib', configuration: 'default')
libs:externalLib build.gradle
dependencies {
compile 'com.android.support:recyclerview-v7:24.0.0-alpha2'
compile 'com.android.support:support-v4:24.0.0-alpha2'
}
Or can I target for API 26 while using 24.x everywhere as a workaround?
You 'must' add you library dependencies in app/build.gradle file.
error says recyclerview library is added twice first you have added it to your gradle and second your library is adding it.
you have to remove implementation 'com.android.support:recyclerview-v7:26.1.0' from your gradle file and contact developer of library to update his library or yourself update it and change its gradle to use version 26 of recyclerview and support library
Related
okay, so this is the first time I'm working with SDKs,
I'm using the zoom SDK from here https://marketplace.zoom.us/docs/sdk/native-sdks/android/getting-started
and I'm trying to run the sample APK as mentioned in the documentation and it returns the error
"This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled"
https://i.stack.imgur.com/taM6c.png
and I have searched and found a solution to this where I turn the android project into an androidX project by using the following in the Gradle.properties file:
android.useAndroidX=true
android.enableJetifier=true
HERE IS WHERE THE ISSUE LIES
the SDK doesn't have any Gradle.properties file, and hence i don't know where to insert the above code
for now, I have inserted the above code in the following files: https://i.stack.imgur.com/Ktj4j.png
and yet the issue still exists, can I please get some help on this? thanks in advance!
Added this into gradle.properties files solve my problem.
android.useAndroidX=true
android.enableJetifier=true
Create new project that time no need to convert AndroidX. Add this in gradle, hopefully working.
Application level
dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.1'
implementation files('libs/commonlib.aar')
implementation files('libs/mobilertc.aar')
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.3.0-alpha02'
}
Project Level
dependencies {
classpath "com.android.tools.build:gradle:4.0.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
The gradle.properties file's name should be lowercase and you can place it multiple location, see the official documentation here.
In this case, I guess you have to put it to your project root directory.
Added this into gradle.properties files
android.useAndroidX=true
android.enableJetifier=true
if you did not find this file write in the terminal flutter create . to recreate your project after that you are going to see gradle.properties file with the same properties that I mintioned before.
I am getting following error while building my project while I haven't used firebase auth in my project:
Error: Program type already present: com.google.firebase.auth.FirebaseAuthException
I have tried following but nothing seems to work
Use navigation option
clean rebuild
invalid cache
exclude group module
my dependencies are as:
dependencies {
implementation fileTree( dir: 'libs',include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-vector-drawable:27.1.1'
implementation 'android.arch.lifecycle:extensions:1.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso- core:3.0.2'
implementation ('com.google.firebase:firebase-admin:6.8.0'){
exclude module:'com.google.firebase-auth'
}
}
implementation 'com.google.firebase:firebase-firestore:19.0.1'
You can't use the Firebase Admin SDK in an Android app. It can only be used in a trusted environment, such as your development machine, a server you control, or Cloud Functions.
If you remove this dependency, the error should disappear:
implementation ('com.google.firebase:firebase-admin:6.8.0'){
This problem usually come from a naming conflict (Most probably because a class appears more than once in your project either in the form of dependencies or a mistake).
To find the list of dependencies for the module 'x' we can run
./gradlew x:dependencies to retrieve a list of all the libraries.
From the dependency tree, you an figure out if there is a class/library with the same name being used by two libraries. Based on this finding, you can choose to exclude the module in one of the libraries that are causing the conflict.
when i use this library :
compile 'co.ronash.android:pushe-base:1.4.0'
I get this error in gradle:
Failed to resolve: com.android.support:support-v4:26.0.2
I can't fix it.
There is a solution to be there library Ignored
'com.android.support:support-v4:26.0.2' from 'co.ronash.android:pushe-base:1.4.0' ?
Because I have already compiled a newer version of support-v4 library.
All my dependencies code in gradle :
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7'
compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
compile 'com.android.support:support-v4:26.+' //--> its ok and no problem
compile 'uk.co.chrisjenx:calligraphy:2.2.0'
compile 'co.ronash.android:pushe-base:1.4.0' //--->this code is error Failed to resolve: com.android.support:support-v4:26.0.2
compile 'com.google.android.gms:play-services-gcm:11.0.4'
compile 'com.google.android.gms:play-services-location:11.0.4'
testCompile 'junit:junit:4.12'
}
There are a few reasons which can cause this kind of problem.
Checkout these solution, I guess it might help you:
1. Remove Pushe and try adding support-v4 library with version of 26.0.2 to make sure it gets downloaded and cached to your system.
compile 'com.android.support:support-v4:26.0.2' // or implementation
If it still can't be resolved then you have a problem getting it from it's repository server. checkout build.gradle(project:your_prj) and make sure this block is valid.
allprojects {
repositories {
google() // or maven { url 'https://maven.google.com/' } for lower gradles
jcenter()
}
}
If your country is included in sanction you might need to use a VPN to be able to get them. You can also use a proxy like Fod(also donate if you can since it's opensource) or shecan.
Remember all support libraries better be 26.0.2 to avoid conflict and crashing. Your support libraries are 26.0.0-alpha1 which is lower.
After you successfully added and cached support-v4 then try to add Pushe to your dependencies again.
! And also remember that pushe has a support-v4 bundled in it and it's not really needed for you to add it yourself
And Make sure you have
<uses-sdk tools:overrideLibrary="co.ronash.pushe" />
in you manifest. Therefore you can override it's libraries and dependencies.
At the end keep your SDK update.
Edit:
Current version of Pushe is using android support libraries. If you attend to use AndroidX be sure to enable jettifier in order to do runtime conversion.
Good evening,
I'm triying to add OkHttp library to my Android project, which uses Estimote Android SDK. It seems that the Estimote Android SDK has included that library (an older version), but the problem is that other dependencies I have included to my app (like Picasso) can't access to that dependencies, just my own classes can. Picasso, to initialize the image caching system, needs to instantiate OkHttpClient object by his own and this class can be found in the OkHttp library. But, it seems that a dependency can't access to another dependencies' library. I don't really know how to explain it...
If I add the OkHttp dependency to my Gradle, after 7 minutes of building, the build fails with a "dexDebug" error. That means that the same library is included twice (one in the Estimote SDK and other in my Gradle).
Here you can see my Gradle's dependencies field:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.android.gms:play-services:7.8.0'
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:support-v4:23.0.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:recyclerview-v7:23.0.0'
compile 'com.android.support:cardview-v7:23.0.0'
compile 'com.android.support:design:23.0.0'
//compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'joda-time:joda-time:2.8.1'
compile 'com.facebook.android:facebook-android-sdk:4.5.0'
compile files('libs/FlurryAnalytics-5.6.0.jar')
compile(name: 'estimote-sdk', ext: 'aar') // This library has okhttp 2.2.0 included in it, but Picasso library can't access here...
}
Here you can see the piece of code that needs the Okhttp library.
Picasso.Builder builder = new Picasso.Builder(this);
OkHttpDownloader downloader = new OkHttpDownloader(this, Integer.MAX_VALUE);
// OkHttpDownloader is a Picasso's class, and then this needs OkHttpClient object from OkHttp library. But it seems that a library can't access to Estimote's library.
builder.downloader(downloader);
Picasso built = builder.build();
built.setIndicatorsEnabled(true);
built.setLoggingEnabled(true);
Picasso.setSingletonInstance(built);
Then, if the problem is solved, I want to change all my HttpRequest AsyncTasks to OkHttp requests.
Any ideas how to solve it? Maybe I can make something in the Gradle file, but I don't know what can I do...
Thank you very much.
Happy coding.
I'm just a hobbyist programmer trying to access Google Calendar. I'm using Android Studio. I've downloaded all the Google Services from the Android SDK manager and set the dependencies. I've also tried following all of Google's documentation of how to do this here: Google Developers: Calendar API Client Library for Java, by adding the client libraries manually in the libs folder of the project.
Any time I do any of this the sample scripts say to type:
import com.google.api.etc...
No matter which way I do it "api" always gets highlighted in red and says it cannot be resolved. I have access to drive, maps, and a bunch of other google stuff, just not calendar.
Has anyone else experienced this problem? If so, how did you fix it? If you need more information from me I'd be happy to supply it.
Thanks!
This is what my build.Gradle dependencies currently looks like:
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.android.gms:play-services:+'
}
Print here code of your files Gradle.
You need it likes here, and put it into file build.gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
UPDATE:
Easify method for adding library, then you can put it into file build.gradle:
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.apis:google-api-services-calendar:v3-rev84-1.18.0-rc'
}