Android Release APK crashing after successful gradle assembley - android

I migrated my project to Android Studio. I have no trouble building the app and running from Android Studio. I have no trouble running the debug APK generated by Android "Generate Signed APK" option. When I want to build a release APK, I run
gradle assembleRelease
Gradle does it's stuff and finishes with BUILD SUCCESSFUL.
When I install this release APK on my device, it crashes immediately due do a missing dependency for (ironically) Crashlytics. I have added the Crashlytics jar as per their instructions.
I am very confused as to why gradle seems to work in general, but just not for the release. Any suggestions are really appreciated!
Here is the main build.gradle
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.android.support:support-v4:19.0.+'
compile project(':stripe')
repositories {
mavenCentral()
}
compile 'com.github.chrisbanes.actionbarpulltorefresh:extra-abs:+'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0#aar'
}
android {
compileSdkVersion 19
buildToolsVersion '19.0.0'
signingConfigs {
release {
storeFile file(****)
storePassword "****"
keyAlias "****"
keyPassword "****"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
lib.srcDirs
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
Here is the build.gradle for stripe:
apply plugin: 'android-library'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "19.0.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/main/java','src/test/java']
resources.srcDirs = ['src/main/java','src/test/java']
aidl.srcDirs = ['src/main/java','src/test/java']
renderscript.srcDirs = ['src/main/java','src/test/java']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
}
}

Hemal from Crashlytics here, I can totally help with this! Go ahead and quickly run through the setup instructions here. That'll take care of the errors you're seeing :)

Related

Gradle Sync Error:(57,0)

I'm having a lot of trouble moving source code from github to Android Studio and I think a big part of the problem is with the gradle build tool files. I have never worked with android studio before and don't have a whole lot of coding experience in general. The gradle sync error I'm getting right now is
Error:(57,0) Plugin with id 'com.android.library' not found.
I feel like part of the problem might be the way in which i added the actionbarsherlock library. I had to add a lot of folders and so my pathways might be causing problems. Is that a possibility? I can include screenshots if that may be more helpful.
apply plugin: 'com.android.application'
dependencies {
compile fileTree(include: '*.jar', dir: 'libs')
compile project(':library')
}
android {
compileSdkVersion 19
buildToolsVersion "25.0.1"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
buildTypes {
debug{
debuggable = true
}
}
}

How to build and run android project with gradle in eclipse

Hello i build an android app using gradle in eclipse. I allways build the project in command line using gradle. Now i try to build and run it in eclipse on android device emulator. In eclipse i don't know how can i build the project with gradle an run it on android emulator device. Please i need help.
You can find my buil.gradle file bellow
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':appcompat_v7')
compile "org.igniterealtime.smack:smack-android:4.1.0-rc1"
compile "org.igniterealtime.smack:smack-tcp:4.1.0-rc1"
// optional features
compile "org.igniterealtime.smack:smack-android-extensions:4.1.0-rc1"
}
repositories {
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots'
}
mavenCentral()
}
android {
lintOptions{
abortOnError false
}
compileSdkVersion 21
buildToolsVersion "20.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 21
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
Did you try adding the gradle eclipse plug-in
apply plugin: "eclipse"
And then generate the eclipse project from build.gradle by calling
gradle eclipse
You also should install the "Gradle IDE Pack" from the eclipse marketplace (Help -> Eclipse Marketplace...).

Error:(1, 0) Plugin with id 'android' not found. in android studio [duplicate]

This question already has answers here:
Error:(1, 0) Plugin with id 'android' not found
(2 answers)
Closed 7 years ago.
I am new at android studio , I gradled my application from eclipse mars and imported it to android studio,but it shows following error.I have already followed so many answers but could not get succeed,can any one tell what are the issues , i am facing here . Thanks in advance!
apply plugin: 'com.android.application'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':android-support-v7-appcompat')
compile project(':google-play-services_lib')
compile project(':FacebookSDK')
}
android {
compileSdkVersion 21
buildToolsVersion "22.0.1"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
Use:
apply plugin: 'com.android.application'
instead of only android

how to integrate pullToRefresh in android studio

I'm new in gradle and android studion.I made integration from eclipse my project (via export )to gradle project.Almost all libs are compiled fine just one pushToRefresh list don't want to add.Every time gradle show me error like this
java.lang.RuntimeException: Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller than version 4
Please help me to solve this issue.There also my gradle code from main project
apply plugin: 'android'
dependencies {
repositories {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':google-play-services_lib-mycity')
compile project(':view-paget-indicator-mycity')
compile project(':facebook-sdk-mycity')
compile project(':Android-PullToRefresh-master:extras:PullToRefreshListFragment')
compile project(':Android-PullToRefresh-master:library')
}
}
android {
compileSdkVersion 20
buildToolsVersion "20.0.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
Thanks
Try to add to the build.gradle these lines after buildToolsVersion:
defaultConfig {
minSdkVersion 4 //or your minsdk
targetSdkVersion 19
}
Gradle overrides some values in your Manifest, for example the minSdk.
If this value is not specified, gradle uses the value = 1 (and the pulltoRefresh library uses minSdk=4)

My android project is "using an old version of the Android Gradle plug-in"

I am getting this error
Project is using an old version of the Android Gradle plug-in. The minimum supported version is 0.6.3.
Please update the version of the dependency 'com.android.tools.build:gradle' in your build.gradle files.
So i did research and realized I had to go to my project build.gradle file and change this part of my dependencies
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
but my build.gradle file doesnt have that. This is my build.gradle file
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':Desktop:Coding:SlidingMenu-master:library')
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
What am I missing?
EDIT:
updated code
apply plugin: 'android'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.4'
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':Desktop:Coding:SlidingMenu-master:library')
}
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
new error
No signature of method: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile() is applicable for argument types: (org.gradle.api.internal.file.collections.DefaultConfigurableFileTree) values: [directory 'libs']
Possible solutions: module(java.lang.Object)
<a href="error in file: C:\Users\cmtc\Documents\Android\StayHealthy\build.gradle at line: 10">Build file 'C:\Users\cmtc\Documents\Android\StayHealthy\build.gradle' line: 10
You are missing a buildscript { ... } block containing the dependencies { classpath ... } block you showed above (and also a repositories { ... } block). Such a block must be available at least in the root project's build script, or apply plugin: "android" won't work.

Categories

Resources