how to get compileSdkVersion equal or higer than the options shown - android-studio

I'm making an app with ads in it with AdMob: https://developers.google.com/admob/android/quick-start?hl=he.
In order to that I need a "compileSdkVersion 28 or higher", so when I tried to change it by doing:
right-click on "app" > open module settings > compile SDK version, I was shown that the maximum option is: compile SDK version 27, and not 28 the minimum requirements for Google AdMob
also here is my build.gradle(Module: app):
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.example.admin.minesweeperyannai"
minSdkVersion 21
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
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.android.gms:play-services-ads:19.4.0'//Google AdMob dependency
}
Also, I checked on their website and found out that I cant use lower versions than 19.4.0 or 18.1.0 (I didn't understand which one is the minimum but both of them didn't work).
This is the error I get when I try to use one of those versions:
error: failed linking references.
And I know my code is good because I've tried using the version: "play-services-ads 17.1.1" and it worked but only with test ads and not real ads, so to sum up I would like to know how to get Compile Sdk Version 28 or higher in order to show ads on my app.

This menu showing you the versions that you already installed it
so to get version 28 or 29 you need to install it
The first option is to change it from build.gradle file for example
android
compileSdkVersion 29
defaultConfig {
.....
minSdkVersion 21
targetSdkVersion 29
}
....
}
Or from SDK Manager select show package details and install Android SDK Platform 28 or 29 then select it from the Compile Sdk Version menu

Related

isuess sync gradle for some old project from git

ERROR: Could not find com.android.tools.build:gradle:3.4.1. Searched
in the following locations:
https://jcenter.bintray.com/com/android/tools/build/gradle/3.4.1/gradle-3.4.1.pom
https://jcenter.bintray.com/com/android/tools/build/gradle/3.4.1/gradle-3.4.1.jar
Required by:
project : Add Google Maven repository and sync project Open File Enable embedded Maven repository and sync project
i have try to update distributionUrl
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
and this my build gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "com.example.android.miwok"
minSdkVersion 15
targetSdkVersion 29
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
implementation "com.android.support:appcompat-v7:$supportVersion"
implementation "com.android.support:support-v4:$supportVersion"
implementation "com.android.support:design:$supportVersion"
}
well this is not best practice to do that, first of all, run that project in android studio and update the gradle, follow one method from this link Link.

Android Studio Build stuck when minifyEnabled is true

Android Studio Generate Signed Apk stuck at
app:transformClassesAndResourcesWithProguardRelease
ExcecuteTransform
it works when minifyEnabled is false
My app.gradle file
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.ashishclasses"
minSdkVersion 21
targetSdkVersion 28
versionCode 3
versionName "1.0.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
shrinkResources false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.google.firebase:firebase-auth:16.1.0'
implementation 'com.google.android.gms:play-services-auth:16.0.1'
implementation 'com.google.firebase:firebase-core:16.0.6'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.google.firebase:firebase-firestore:18.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:customtabs:28.0.0'
// implementation files('libs/YouTubeAndroidPlayerApi.jar')
implementation "com.vimeo.networking:vimeo-networking:1.1.3"
// implementation 'com.mcxiaoke.volley:library:1.0.18'
// implementation 'com.pierfrancescosoffritti.androidyoutubeplayer:core:9.0.1'
implementation 'com.google.firebase:firebase-messaging:17.3.4'
// implementation 'com.google.firebase:firebase-database:16.0.6'
implementation 'com.google.firebase:firebase-ads:17.1.2'
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'
}
apply plugin: 'com.google.gms.google-services'
I even removed all my proguard rules, Now proguard-rules.pro is just empty file
Please tell me how I can build apk while proguard enabled
I kept running my build and after 20 Minutes Finally
Gradle build finished in 20 m 45 s 428 ms
So kind of my problem is solved but not actually.
My simple build of signed apk takes 1-2 minutes and with minify enabled 20+ minutes
And my hardware's are not that bad,
I have 6gb ram and ssd and using on arch linux and AMD A8 processor

How to change build tools version in Android Studio 3.0.1?

I just upgraded my Android studio from 2.3 to 3.0.1. But I get this error message(I have already installed API 27 ) and don't know how to fix it, because I couldn't find the the build tools version in new version of android studio!
Error:Failed to find Build Tools revision 26.0.2 Install Build Tools 26.0.2 and sync project
The gradle files are changed, also the project structure has only one tab!
Edit:
this is the content of `app/build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.m.finalocr"
minSdkVersion 21
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
As you can see, there is no buildToolsVersion in it. So, why my android studio looks for this specific version(26) of that when I have the 27 version installed on my computer? Also, where can I see the buildToolsVersion "26.0.2" and change it tobuildToolsVersion "27.0.3" ` ?
Your project is looking for Build Tools version 26.0.2, but you haven't yet downloaded and installed it on your computer.
To download it, go to Tools > Android > SDK Manager, then click on the "SDK Tools" tab at the top of the new window. Then select the "Show Package Details" checkbox in the lower right-hand corner. Finally, scroll down to where you see 26.0.2, check the checkbox next to it, and click "OK" to begin the install process.
If you want to change the Build Tools version in your project, that is specified in project's build.gradle file (in the 'app' module). Open the file and either add or update the Build Tools version you want to use by adding/updating the following property in the 'android' section:
android {
buildToolsVersion "27.0.3"
...
}

can't get gradle to accept java-client-6.0.0-BETA1.jar in android studio 3

I'm new to android studio. I'm trying to get Android Studio Gradle to build with appium's java-client-6.0.0-BETA1.jar. I'm implementing appium. I believe android studio is install right. I've downloaded the recommended files for appium, selenium-server-standalone-3.8.1.jar, selenium-remote-driver.jar, selenium-java-3.8.1.zip and anything else I can see needed. Appium server is installed and working. An android emulator is running and working.
I get this error:
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Repositories\ApkProjects\EndToEndAndroidTest\app\libs\java-client-6.0.0-BETA1.jar
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:550)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.lambda$convertToDexArchive$1(DexArchiveBuilderTransform.java:488)
at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing io/appium/java_client/touch/TapOptions.class
The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle
android {
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
I've tried the recommended fix - makes no difference. I've updated guava-23.3-android also which was giving similar errors.
The gradle.build file is:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.nwri.endtoendandroidtest"
minSdkVersion 18
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
// compile 'com.google.guava:guava:23.3-android'
}
I've searched the web and can't find anyone having this issue. Here is a screen shot if that helps:
Android studio
Setting Source Compatibility and Target Compatibility to 1.8 in Project Structure dialog helped me.
While manual adding
android {
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
did not help.

java.util.zip.ZipException: duplicate entry: org/apache/http/ConnectionClosedException.class

I am getting error like this when i run the application.I am using HttpClient,HttpEntity,HttpResponse and HttpPost in my MainActivity..so i made some modifications to gradle file.After that i am getting error like this.
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/http/ConnectionClosedException.class
i have also included multidex library and org.apache.http.legacy.jar in my app.but then also i am getting the same error.
build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.example.test1"
minSdkVersion 15
targetSdkVersion 23
multiDexEnabled true
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'org.apache.httpcomponents:httpclient:4.5'
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:multidex:1.0.1'
compile files('libs/org.apache.http.legacy.jar')
compile 'org.apache.httpcomponents:httpmime:4.5.1'
}
I Know this question has been asked many times,but none of the solutions worked for me..
Can anyone please help me to resolve this one.
You may not use "compile 'org.apache.httpcomponents:httpcore:4.4.1'" nor "compile files('libs/org.apache.http.legacy.jar')" at the same time.
I too faced the same issue. The problem is Since you are using
compile files('libs/org.apache.http.legacy.jar') and
compile 'org.apache.httpcomponents:httpmime:4.5.1'
You need to remove the two libs which I mentioned below. Which contains duplication of the above.
if you are adding legacy and httpmime you don't need this
compile 'org.apache.httpcomponents:httpcore:4.4.1'//remove this
compile 'org.apache.httpcomponents:httpclient:4.5' // remove this too
Also add this inside android section in gradle
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
useLibrary 'org.apache.http.legacy'

Resources