Android Studio: Error: Error:(205, 24) error: exception handling disabled, use -fexceptions to enable - android-studio

I am very new to Android Studio. I am trying to build some Sqlite3 wrapper classes (written in C++). I tried to build them with NDK using Android studio, but I am getting error that "Error:(205, 24) error: exception handling disabled, use -fexceptions to enable". I am not able to find what option should I give in gradle.build file. I have seen many posts but they all refer to some Android.mk or Application.mk file. I have pasted content of my gradle.build file below:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.asite.ndksample"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
ndk{
moduleName "myLib"
stl "gnustl_static"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
Let me know how to come out from this error using Android Studio with gradle.build file. Also let me know detail about all parameters mentioned under "ndk" section. I am not aware what all possible values can be put there.

you can use the cFlags parameter under the ndk section:
ndk{
moduleName "myLib"
stl "gnustl_static"
cFlags "-fexceptions"
}
The only other paramters you can use for this ndk configuration are ldLibs and abiFilter, to specify respectively required ndk libs (log...) and cpu architectures to compile for (x86, armeabi-v7a, x86_64...).

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.

Library not installed with build make Android Studio but works with CMAKE-GUI

System information:
Android Studio 3.2.1
Linux Ubuntu 16.04
Introduction
I recently came across a problem with my IDE (Android Studio). I use it to develop a Native / Java Application alongside Gradle and CMakeLists.
I use a few CMakeLists to export some functions in C/C++ to use with my app.
So these Cmakelists will create some library that can be used.
Problem
When I "make" my project it will build successfully, but the library doesn't change, whether it's modified, or not.
After that, I thought that I might need to "Clean my project" before doing it, but nothing good happened.
You can see my build.gradle under the post.
Tried Solution
The workaround I found is to compile each library with CMAKE-GUI and then compile my Android project to see the modification previously made.
That's bad and not normal, I think.
Help
I want to know why my project doesn't make again my library and "install" it in the appropriate folder.
It's unnecessary to show my CMakeLists because it works on CLion with Linux and Windows with Visual Studio.
Build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.media.[NAME_OF_MY_PROJET]"
minSdkVersion 24
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk { abiFilters "armeabi-v7a" }
externalNativeBuild {
cmake {
cppFlags "-O3 -fno-stack-protector -fintegrated-as "
arguments "-DANDROID_ABI=armeabi-v7a", "-DANDROID_TOOLCHAIN=clang",
"-DANDROID_NATIVE_API_LEVEL=24", "-DANDROID_NDK=/Android/Sdk/ndk-bundle",
"-DANDROID_STL=c++_static", "-DANDROID_SDK_ROOT=/Android/Sdk/"
}
}
}
buildTypes {
/* customDebugType {
debuggable true
} */
debug {
jniDebuggable true
}
/* release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}*/
}
externalNativeBuild {
cmake {
path "../CMakeLists.txt"
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
}

How to add linkedin sdk path in app gradle?

I had followed so many tutorials to add linkedin sdk and sync gradle in my project but unable to did that. Downloaded linked sdk from https://developer.linkedin.com/downloads#androidsdk & unziped the folder then add the sdk file to my project directory. I mean copied that to project->app->lib path.Now i am getting the error while writing LISessionManager in activity.Something like this cannot resolve symbol 'LISessionManager'
Here is my build.gradle(app module) file,
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig {
applicationId "com.interfinet.jobtree"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
apply plugin: 'android-apt'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:palette-v7:24.2.1'
compile 'com.android.support:recyclerview-v7:24.2.1'
compile 'com.android.support:cardview-v7:24.2.1'
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'com.google.android.gms:play-services-maps:8.4.0'
compile 'com.google.android.gms:play-services-location:8.4.0'
compile 'com.weiwangcn.betterspinner:library-material:1.1.0'
compile 'com.github.hotchemi:permissionsdispatcher:2.0.7'
apt 'com.github.hotchemi:permissionsdispatcher-processor:2.0.7'
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
compile 'com.jaredrummler:material-spinner:1.1.0'
compile 'com.squareup.picasso:picasso:2.5.2'
}
Setting.gradle file is,
include ':app', ':linkedin-sdk'
You have to add linkedin-sdk folder as a module to your project:
and add this line to your app build.gradle dependencies:
compile project(':linkedin-sdk')

Decompiling a self generated jar in lib in Android Studio

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'com.github.triplet.play'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.prototype"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
testCoverageEnabled = false
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
testCompile "org.mockito:mockito-core:1.10.19"
testCompile 'org.apache.oltu.oauth2:org.apache.oltu.oauth2.client:0.31'
}
I have generated a jar using swagger codegen and have placed in lib folder of my app in the Android studio. It is not getting decompiled, i.e., I am not able to see classes of my jar here.
I have tried Invalidate caches/Restart. It worked sometimes before.
But it is not working anymore. Any help will be appreciated.
You probably missing in your build.gradle something like:
compile files('libs/your-jar-filename.jar')
The following worked for me :
Right-click the jar file.
Select 'Add as Library.
Do Gradle Sync.

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