Changing Android versionCode causes build.gradle error - android

I just upgraded my Android Studio to 1.4.1.
In build.gradle, When i change my versionCode,
import org.apache.commons.lang3.JavaVersion
gets added to the top of build.gradle, which causes the error:
build file '/../app/build.gradle': 1: unable to resolve class org.apache.commons.lang3.JavaVersion
# line 1, column 1.
import org.apache.commons.lang3.JavaVersion
When I remove the line import org.apache.commons.lang3.JavaVersion, it gets added back automatically after a while.
When I revert the versionCode back to 1, the import statement disappears and all is well.
Gradle File
import org.apache.commons.lang3.JavaVersion
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
android {
compileSdkVersion 22
buildToolsVersion "22.0.0"
defaultConfig {
applicationId "com.x.app"
minSdkVersion 14
targetSdkVersion 22
versionCode 2
versionName "1.0.1"
renderscriptTargetApi 19
renderscriptSupportModeEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE.txt'
}
}
How do i solve this issue?
Thanks!

Simply remove the import.
Your versionCode line in build.gradle should look like this :
versionCode 3

You use this class on compileOptions. That has nothing to do with pour versionCode, which is just fine.
Java 8 is not supported in Android, so I guess your problem is here

Related

Stripe Android, Cannot resolve symbol 'PaymentConfiguration'

I'm trying to add a Payment Method in Stripe. In the client side (android) I'm adding the dependency implementation 'com.stripe:stripe-android:19.1.0'
The gradle version looks like
dependencies {
...
classpath 'com.google.gms:google-services:4.3.3'
classpath 'com.android.tools.build:gradle:4.0.2'
}
And my gradle app file version looks like
apply plugin: 'com.android.application'
android {
compileSdkVersion 31
defaultConfig {
applicationId "com.buscaride.dev"
minSdkVersion 21
targetSdkVersion 31
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
dataBinding{
enabled=true
}
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
...
implementation 'androidx.appcompat:appcompat:1.4.0'
...
implementation 'com.stripe:stripe-android:19.1.0'
}
So, when I try to import com.stripe.android.PaymentConfiguration; it says:
Cannot resolve symbol 'PaymentConfiguration'
No clue what I'm missing
Worked for me when I upgraded Android Studio to latest version.
Did you tried to invalidate Caches in "File Menu -> Invalidate Caches / Restart"?

Could not get unknown property 'experimentalProperties' for extension 'android' | Android Jetpack Macrobenchmark

I am following macrobenchmark setup configurations from -
https://developer.android.com/studio/profile/macrobenchmark#configuration
In following code in my macrobenchmark's build.gradle
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion 29
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
targetProjectPath = ":app" // Note that your module name may be different
experimentalProperties["android.experimental.self-instrumenting"] = true
buildTypes {
release {
debuggable = true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
following build error is thrown while gradle sync:
A problem occurred evaluating project ':macrobenchmark'.
> Could not get unknown property 'experimentalProperties' for extension 'android' of type com.android.build.gradle.TestExtension.
I'm new to android, any help is appreciated, thanks in advance.
Fixed the error, via following -
Updated Android Studio to Arctic Fox Beta Version
Updated gradle version in project build.gradle to 7.0 beta4
Found solution through documentation of benchmark samples repository provided by google and comparing gradle files.
Due other dependencies I had to update to version 7.1.0-alpha02 of gradle plugin in project build.gradle file.
And this property got recognized.

The application's minSdkVersion is newer than the device API level (android-R)

I have a device with android version 10.
Also, I have an emulator with API 22
this is a part of my build.gradle(:app) file:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
android {
dataBinding {
enabled = true
}
compileSdkVersion 'android-R'
defaultConfig {
applicationId "com.example.android.sOnline"
minSdkVersion 17
targetSdkVersion 'R'
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
// android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true
}
}
It just not working on 'android-R'
Thank you for helping me :)
targetSdkVersion "R" will restrict your app to only running on Android R, by artificially raising your minSdkVersion to R. This has been the case for the past several years: each developer preview only supports running the app on the developer preview itself, not older devices.
Sometime later this year, we will be able to switch to using targetSdkVersion 30, at which point normal behavior returns with respect to minSdkVersion.
Go to build.gradle file
in defaultConfig: change minSdk to 28 and targetSdk to 30
I use a samsung s9 plus, had the same problem and now it works
defaultConfig {
applicationId "com.example.consigness"
minSdk 28
targetSdk 30
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
For me it was that the virtual device was corrupted , to fix this follow these steps :
open the AVD manager from the top right corner.
delete the device from the actions menu.
create a new one.
choose the new device and run your application.
For future safety before exiting the android studio make sure to close the emulator first.

Error: Invoke-customs are only supported starting with Android O (--min-api 26)

I have recently started learning how to program Android devices via Android Studio. My first app was running fine until I upgraded to Android Studio 3.4 this morning.
I'm getting the following compilation errors:
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\Technical.gradle\caches\transforms-2\files-2.1\4f3f8638c6a9f961dae488a0387efb6b\jars\classes.jar
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
Caused by: com.android.tools.r8.utils.AbortException: Error: Invoke-customs are only supported starting with Android O (--min-api 26)
Is there a way of reverting back to my previous version of Android Studio?
If not what has changed in the new version that is causing a failure in creating the dex file?
I have tried adding android.enableD8=true in gradle.properties as suggested here but no luck.
EDIT #1:
Have also tied adding multiDexEnabled true to the default configuration in the app build.gradle file but the same compilation errors persist.
That build file in full...
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "qdivision.org.qrtracker"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
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.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.github.felHR85:UsbSerial:6.0.5'
}
Try to add below to your app/build.gradle to make your Android project compilation be compatible with Java 8.
android {
....
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
....
}
I had to remove useProguard true from the buildTypes configuration.
According to the documentation minifyEnabled true is enough to obfuscate your code with R8.
Example:
android {
buildTypes {
debug {
versionNameSuffix "-dev"
minifyEnabled true // <- remove this line when using instant run
useProguard true // <- remove this line
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), "proguard-rules.pro"
}
release {
shrinkResources true
minifyEnabled true
useProguard true // <- remove this line
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), "proguard-rules.pro"
}
}
}
for me following command in BUILD.GRADLE removed the error.
defaultConfig {
applicationId "com.example.myapptestheader"
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
I just added
multiDexEnabled true
What is relevant in this stacktrace is this line:
Caused by: com.android.tools.r8.utils.AbortException: Error: Invoke-customs are only supported starting with Android O (--min-api 26)
As there is not kotlin library in your dependencies, I assume you’re working with java. I would try answers in this issue
in your Android Studio go to build.gradle(Module:App)
then add this compileOptions{} block into android{} block
android{
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
If you are using Google Cloud library, try to decrease the version to 1.90
Add the following to make your app to be compiled by java8 compiler.
android {
.....
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
And disable instant-run found at
Preferences->Build,Execution,Deployment->Debugger->Instant Run
I have added to all modules these code:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
But error was still there.
In my case some of my modules used classpath 'me.tatarka:gradle-retrolambda' and it gave the conflict with this:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
So I have to migtrated from Retrolambda by this link:
https://developer.android.com/studio/write/java8-support#migrate_from_retrolambda
Please add this line in build.gradle file.
android{
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
I had the same problem. Mine was caused by ... org.apache.commons:commons-lang .... I do not have the complete error message at the moment. This error only occurred during a Rebuild or Clean Build.
I Resolved by changing the org.apache.commons:commons-text:1.8 in my build.gradle to org.apache.commons:commons-text:1.6.
Note - There was a suggestion here to disable "Instant Run" in Android Studio. This feature was not available in my Android Studio. Version -
Android Studio 3.5.1
Build #AI-191.8026.42.35.5900203, built on September 26, 2019
Windows 10 10.0
for kotlin you should also add kotlinOptions:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
for me solution with Java 8 started work only after I have removed all ting related to retrolambda.
For anyone else hitting this, I encountered this problem after adding a dependency on this Jackson library:
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.1")
The "compileOptions" solution above fixed the issue for me
This still works in 2021 please try it.
android {
compileSdkVersion 30
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "com.example.android.bakingapp"
minSdkVersion 15
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
For my case, It was also showing after adding the following lines -
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
So I fixed my problem just simply update my minSdkVersion from 19 to 21 and then finally it worked !!!
I faced this error after upgrading the core libraries in build.gradle to there latest versions luckily accepted answer worked for me.
The reason of working of accepted answer was the change in the latest version of core library targeting api level 30 which is written in java8 therefore adding dependency to java8 solved it.
As of December 2021, this is what works.
The reason why I have ran into this is because of missing skd version 26 and missing java version 8. Under your build.gradle(app) folder, add the following code to make sure that you have the correct dependencies, default configurations and android compatibilities. You don't need to know what they mean yet, just know they exist. Basically you are trying to make sure that Android can read previous version of things. Here is the code that I run to ensure that my apps run.
apply plugin: 'com.android.application'
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
compileSdkVersion 26
compileSdkVersion 27
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.example.firstfirstapp"
minSdkVersion 16
targetSdkVersion 26
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "androidx.cardview:cardview:1.0.0"
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'com.android.support:appcompat-v7:26.0.0'
}
add this line:- multiDexEnabled true in build. gradle
in` defaultConfig {
...
multiDexEnabled true
}
Also make minsdk = 26
try this:
defaultConfig {
...
multiDexEnabled true
}
If you are trying to run apk directly from android studio, please try to avoid enabling
minifyEnabled true
Comment the following line.
// minifyEnabled true
// shrinkResources true
But you can use above line while building apk.

Crashing app after implementation Sceneform

I'm struggling with a strange issue.
I tried everything to find a solution to why my app crashes.
The reason is "implementation 'com.google.ar.sceneform.ux:sceneform-ux:1.7.0' ".
When I add this implementation I get error:
java.lang.RuntimeException: Unable to instantiate activity
ComponentInfo{com.example.myarcore/com.example.myarcore.MainActivity}:
java.lang.ClassNotFoundException: Didn't find class
"com.example.myarcore.MainActivity" on path: DexPathList[[zip file
"/data/app/com.example.myarcore-Aw
This is my app gradle code:
apply plugin: 'com.android.application'
apply plugin: 'com.google.ar.sceneform.plugin'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.myarcore"
minSdkVersion 26
targetSdkVersion 28
multiDexEnabled true
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
According to MultiDex documentation if app min sdk is higher than 21 then to enable MultiDex all I need is to put multiDexEnabled true as I did.
SOLVED,
My min SDK was set to 26.
Just add this to your app gradle, even when documentation says that is necessary in min SDK lower than 26.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

Categories

Resources