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)
Related
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...).
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
I'm just migrated from Eclipse. My project keeps the old structure like below
projRoot\
src\
res\
...
AndroidManifest.xml
tests
build.gradle
Here's content of build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 19
buildToolsVersion '19.1.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']
}
androidTest.setRoot('tests/src')
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
defaultConfig {
testApplicationId 'com.xxx.yyy.test'
testInstrumentationRunner 'android.test.InstrumentationTestRunner'
testHandleProfiling true
testFunctionalTest true
}
}
I'm on Android Studio 0.8 beta, Gradle 1.12, I tried every possible solution found all over SO and google without any success.
Anyone can help out? Thanks.
In addition, where can I know the current version of Android Gradle plugin?
For test source set structure, follow this link. It is mentioned that test source sets should be setup as follows:
for local unit tests: module-name/src/test/java/
for android instrumentation tests: module-name/src/androidTest/java/
In case it's still doesn't work. Android Studio may encounter sometimes issues with the recognition of the tests. And the workaround would be to run local tests by using the command line:
./gradlew testVariantNameUnitTest
Once the command is run. You can go back to Android Studio and run the tests and it should work. You can find more on running tests using command line on this link.
Hope this helps.
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 :)
I'm trying to build Sherlock with Gradle from command line. I'm trying to build the Sherlock library itself. Here's what I did:
1) I used Eclipse File|Export|Create Gradle build files and got me a build.gradle for Sherlock.
2) Now I go to sherlock/actionbarsherlock and do gradle build from command line
3) Now it starts building fine but then it gives errors as if the Java Compiler version is 1.5. It complains about overriding interface methods.
C:\sherlock\actionbarsherlock\src\com\actionbarsherlock\app\Sherlock
Fragment.java:22: error: method does not override or implement a method from a supertype
#Override
I wonder why is it so?
In Android Studio it builds fine but I can't build from the command line.
Here's my build.gradle for Sherlock but then it's generated by Eclipse I changed nothing.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android-library'
dependencies {
}
android {
compileSdkVersion 17
buildToolsVersion "17"
defaultConfig {
minSdkVersion 7
targetSdkVersion 15
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}
I think you missed to add it to the dependecies
dependencies {
compile files('libs/android-support-v4.jar')
}