INSTALL_PARSE_FAILED_NO_CERTIFICATES with google-services plugin - android

I have a big project with different build types and flavors.
It is in production already more than half of the year and I've made more then hundred updates of its version.
Today I need to implement plugin: 'com.google.gms.google-services' into the project and can not run application because INSTALL_PARSE_FAILED_NO_CERTIFICATES.
I'm sure problem with configuration of build types and flavors but before apply plugin: 'com.google.gms.google-services' everything was always well working. Please, help me to understand what can conflict with google-services plugin.
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'retrolambda'
apply plugin: 'android-apt'
apply plugin: 'android'
apply plugin: 'com.google.gms.google-services'
buildscript {
repositories {
mavenCentral()
mavenLocal()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'me.tatarka:gradle-retrolambda:2.4.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
classpath 'io.fabric.tools:gradle:1.+'
}
}
repositories {
mavenCentral()
mavenLocal()
maven { url 'https://maven.fabric.io/public' }
maven { url "https://github.com/taplytics/Taplytics-Android-SDK/raw/master/AndroidStudio/" }
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
dexOptions {
jumboMode = true
}
defaultConfig {
applicationId "com.examplepack.appp"
minSdkVersion 14
targetSdkVersion 23
versionCode 291
versionName "1.0.1.291"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
signingConfigs {
config {
storeFile file('certificate.jks')
storePassword 'examplepass'
keyAlias 'appl'
keyPassword 'examplepass'
}
}
buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
}
productFlavors {
stage {
}
dev {
}
prod {
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/MANIFEST.MF'
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName "com.examplepack.appp"
}
}
retrolambda {
jdk "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home"
oldJdk System.getenv("JAVA6_HOME")
javaVersion JavaVersion.VERSION_1_6
}
dependencies {
.............
compile 'com.google.android.gms:play-services:8.1.0'
}

There is a known issue with version 1.4-beta2 or newer of the Gradle plugin.
You can use a older version for this to work

I've been dealing with this issue for a while. I decided to try every combination of com.android.tools.build:gradle and com.google.gms:google-services.
This work for me:
Project level:
com.android.tools.build:gradle:1.3.1
com.google.gms:google-services:1.3.1
App Level:
com.google.android.gms:play-services:8.1.0
I also upgraded Google Repository and Sdk Tools to latest versions. I'm using Android Studio 1.4.

Related

Gradle build error 1,0

I have tried to solve this problem by using previous posts on this forum and none of them worked. Can someone show me exactly what the problem is and how to solve it for this gradle?
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "org.tensorflow.lite.demo"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// Remove this block.
jackOptions {
enabled true
}
}
lintOptions {
abortOnError false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
aaptOptions {
noCompress "tflite"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
maven {
url 'https://google.bintray.com/tensorflow'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',
{
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'org.tensorflow:tensorflow-lite:+'
testCompile 'junit:junit:4.12'
}
Error: (1,0)=: plugin with id com.android.application not found
Posts i have already tried: Error:(1, 0) Plugin with id 'com.android.application' not found - no build.gradle file
Add a buildscript section like below.
You need to define where to download the android plugin.
apply plugin: 'com.android.application'
buildscript {
/**
* The repositories block configures the repositories Gradle uses to
* search or download the dependencies. Gradle pre-configures support for remote
* repositories such as JCenter, Maven Central, and Ivy. You can also use local
* repositories or define your own remote repositories. The code below defines
* JCenter as the repository Gradle should use to look for its dependencies.
*
* New projects created using Android Studio 3.0 and higher also include
* Google's Maven repository.
*/
repositories {
google()
jcenter()
}
/**
* The dependencies block configures the dependencies Gradle needs to use
* to build your project. The following line adds Android plugin for Gradle
* version 3.1.0 as a classpath dependency.
*/
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
}
}
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "org.tensorflow.lite.demo"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// Remove this block.
jackOptions {
enabled true
}
}
lintOptions {
abortOnError false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
aaptOptions {
noCompress "tflite"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

Why APK created by Android Studio is larger than APK created by Eclipse?

My APK created by Eclipse is 900K, but by Android Studio is 1.62MB. The code is same. Why? In Eclipse, I add facebook-sdk.jar, google-analytics.jar and other jars to my libs. In Android Studio, the two build.gradle are as follows:
build.gradle in project
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.google.gms:google-services:1.3.0-beta1'
}
}
allprojects {
repositories {
jcenter()
}
}
build.gradle in module
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 21
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.xxx.xxx"
minSdkVersion 15
targetSdkVersion 21
}
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
}
repositories {
mavenCentral()
}
dependencies {
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
compile 'com.android.support:support-v4:21.0.3'
// compile 'com.google.android.gms:play-services:7.5.+'
compile 'com.google.android.gms:play-services-analytics:7.5.0'
compile files('libs/stickylistheaders_lib.jar')
}
use this in build.gradle the problem is in gradle build
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}

My project files are not included into apk

I am always getting java.lang.ClassNotFoundException: ru.ooolpi.lpiapp.ui.activity.MainActivity. But I have such class. Later I discovered that my project files are missing from apk.
My build script:
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
// classpath 'org.robolectric.gradle:gradle-android-test-plugin:0.10.1'
//classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.0'
}
}
//apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
repositories {
maven { url 'https://github.com/donnfelker/mvn-repo/raw/master/' }
maven { url 'https://repo.commonsware.com.s3.amazonaws.com' }
jcenter()
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:22.2.1'
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.1'
compile 'com.squareup.dagger:dagger:1.2.2'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.squareup:otto:1.3.8'
apt 'com.squareup.dagger:dagger-compiler:1.0.1'
}
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
//applicationId "ru.ooolpi.lpiapp"
minSdkVersion 10
targetSdkVersion 22
versionCode 2
versionName "1.0.1"
multiDexEnabled true
}
packagingOptions {
// Exclude file to avoid
// Error: Duplicate files during packaging of APK
exclude 'META-INF/services/javax.annotation.processing.Processor'
exclude 'META-INF/notice.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE.txt'
exclude '.readme'
}
dexOptions {
jumboMode = true
javaMaxHeapSize "4g"
}
signingConfigs {
release {
storeFile file('../devcert.jks')
storePassword '123456'
keyAlias 'dev'
keyPassword '123456'
}
}
lintOptions {
//disable 'InvalidPackage'
abortOnError false
}
compileOptions{
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
zipAlignEnabled true // this is default for release
}
debug {
applicationIdSuffix '.debug'
minifyEnabled false
}
}
}
I tried to build with Android Studio and just with gradlew. Result is the same - my files are not included into apk.
Update:
My project structure
Have a look at your proguard config file.
Make sure you don't strip off any class that you use in your apk. To manually keep the classes, add these lines:
-keep class ru.ooolpi.lpiapp.** { *; }
-dontwarn ru.ooolpi.lpiapp.**
The issue was that I used different versions for dagger and it's compiler.
How it was:
compile 'com.squareup.dagger:dagger:1.2.2'
apt 'com.squareup.dagger:dagger-compiler:1.0.1'
It should look like:
compile 'com.squareup.dagger:dagger:1.2.2'
apt 'com.squareup.dagger:dagger-compiler:1.2.2'
So, Android Studio refused to highlight issues in my code (I don't know why these things are related).

Classpath specific to module in IntelliJ Gradle project

I have an IntelliJ Gradle project which contains an Android module, a GWT module and a pure Java module.
Is there a way to add the classpath for 'com.android.tools.build:gradle:1.0.0' such that it is not in a buildscript?
Here is my 'build.gradle' for the Android module:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
// workaround for "duplicate files during packaging of APK" issue
// see https://groups.google.com/d/msg/adt-dev/bl5Rc4Szpzg/wC8cylTWuIEJ
packagingOptions {
exclude 'META-INF/ASL2.0'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.1+'
}
And here is my top-level 'build.gradle'
allprojects {
repositories {
mavenCentral()
}
}
Thank you!

Android Studio 0.5.3 android.compileSdkVersion is missing

I'm using Android studio 0.5.3
I keep getting :
Gradle 'OpenBook' project refresh failed:
Cause: android.compileSdkVersion is missing!
Gradle settings
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
sourceSets {
main {
manifest.srcFile '/MyApp/src/main/AndroidManifest.xml'
}
}
}
And My App Buid.gradle
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
sourceSets {
main {
manifest.srcFile '/src/main/AndroidManifest.xml'
}
}
}
dependencies {
// compile 'com.android.support:appcompat-v7:+'
compile project("libraries:library-toast")
compile project("libraries:Volley")
compile project("libraries:actionbarsherlock")
compile project("libraries:Dialoglibrary")
compile project("libraries:google-play-services_lib")
compile project("libraries:PullToRefreshlibrary")
compile project("libraries:facebook")
compile project("libraries:SlidingTabBarlibrary")
compile project("libraries:AndroidPlot-Core")
compile project("libraries:SignUpModule")
compile project("libraries:Jars")
compile project("libraries:UpdateChecker")
compile "com.mixpanel.android:mixpanel-android:4.0.0#aar"
}
Not Sure what to do.
Thanks for any help
You have specified "compileSdkVersion 19" in your build file. Seems like you are missing that SDK (can you post more of the output with the error in it) You need to make sure that you have installed the right SDK using the SDK manager in Android Studio.
Jake Wharton has created a new gradle plugin to automatically keep the SDKs updated https://github.com/JakeWharton/sdk-manager-plugin

Categories

Resources