Why is Firebase causing the app to crash - android

Project Gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
classpath 'com.google.gms:google-services:3.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
App Gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "com.myapp"
minSdkVersion 16
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
}
}
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 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
//compile 'com.google.android.gms:play-services:7.5.0'
compile 'com.google.android.gms:play-services:9.8.0'
compile 'com.google.firebase:firebase-core:9.8.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
Activity:
private DatabaseReference mDatabase;
...
mDatabase = FirebaseDatabase.getInstance().getReference(Config.FIREBASE_URL); //public static final String FIREBASE_URL = "https://myapp.firebaseio.com/ ";
...
mDatabase.setValue(edittextName.getText().toString());
Class:
public class Config {
public static final String FIREBASE_URL = "https://myapps.firebaseio.com/ ";
}
I am getting the following error:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myapp, PID: 30211
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.MainActivity}: com.google.firebase.database.DatabaseException: Failed to get FirebaseDatabase instance: FirebaseApp object has no DatabaseURL in its FirebaseOptions object.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2376)
at android.app.ActivityThread.access$800(ActivityThread.java:147)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5253)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: com.google.firebase.database.DatabaseException: Failed to get FirebaseDatabase instance: FirebaseApp object has no DatabaseURL in its FirebaseOptions object.
at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source)
at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source)
at com.myapp.MainActivity.onCreate(MainActivity.java:103)
at android.app.Activity.performCreate(Activity.java:5975)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2376) 
at android.app.ActivityThread.access$800(ActivityThread.java:147) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5253) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
How can I resolve the issue.
The link provided does not resolve my issue!

Per #qbix, I had to use getReferenceFromUrl() and the app didn't crash.

Related

java.lang.NoSuchMethodError: when using realm database, no method found

I have included Realm in a project, and have followed the documentation. But whenever I compile and run the app, i get the following error:
FATAL EXCEPTION: main
Process: org.innoversetech.wifinity, PID: 8391
java.lang.NoSuchMethodError: No static method loadLibrary(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V in class Lcom/getkeepsafe/relinker/ReLinker; or its super classes (declaration of 'com.getkeepsafe.relinker.ReLinker' appears in /data/app/org.innoversetech.wifinity-2/split_lib_dependencies_apk.apk:classes16.dex)
at io.realm.internal.RealmCore.loadLibrary(RealmCore.java:60)
at io.realm.Realm.init(Realm.java:200)
at org.innoversetech.wifinity.MyApplication.onCreate(MyApplication.java:17)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1037)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6496)
at android.app.ActivityThread.access$1800(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7406)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
I have been at this for hours now and I cannot understand what the problem is. Here is my code for MyApplication class:
import android.app.Application;
import io.realm.Realm;
import io.realm.RealmConfiguration;
public class MyApplication extends Application {
#Override
public void onCreate() {
super.onCreate();
Realm.init(getApplicationContext());
RealmConfiguration realmConfiguration = new RealmConfiguration.Builder()
.name(Realm.DEFAULT_REALM_NAME)
.schemaVersion(0)
.deleteRealmIfMigrationNeeded()
.build();
Realm.setDefaultConfiguration(realmConfiguration);
}
}
This is my build.gradle for app level:
apply plugin: 'com.android.application'
apply plugin: 'realm-android'
repositories {
maven {
url "https://jitpack.io"
}
}
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "org.innoversetech.wifinity"
minSdkVersion 18
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
proguardFile 'D:/Code/Android/KillMe/Wifinity/app/proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
//dependencies
compile('com.mikepenz:materialdrawer:5.9.5#aar') {
transitive = true
}
compile 'devlight.io:navigationtabbar:1.2.5'
compile 'devlight.io:navigationtabbar:1.2.5'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:support-vector-drawable:25.3.1'
compile 'com.github.florent37:materialviewpager:1.2.1'
compile 'com.flaviofaria:kenburnsview:1.0.7'
compile 'com.jpardogo.materialtabstrip:library:1.1.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.jakewharton:butterknife:8.6.0'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.android.support:cardview-v7:23.3.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.mani:ThinDownloadManager:1.3.0'
compile 'com.github.barteksc:android-pdf-viewer:2.6.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.afollestad.material-dialogs:core:0.9.4.5'
compile 'com.afollestad.material-dialogs:commons:0.9.4.5'
compile 'com.felipecsl.asymmetricgridview:library:2.0.1'
compile 'com.race604.waveloading:library:1.1.1'
compile 'com.github.Yalantis:GuillotineMenu-Android:1.2'
compile 'net.steamcrafted:materialiconlib:1.1.3'
compile 'com.mikepenz:google-material-typeface:+#aar'
compile 'com.mikepenz:fontawesome-typeface:+#aar'
compile 'com.diegodobelo.expandingview:expanding-view:0.9.4'
compile 'com.github.thorbenprimke:realm-recyclerview:0.9.25'
compile 'it.sephiroth.android.library.targettooltip:target-tooltip-library:1.3.15'
compile 'com.getkeepsafe.relinker:relinker:1.2.2'
compile 'com.github.KeepSafe:ReLinker:1.1'
testCompile 'junit:junit:4.12'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'
}
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.0.0-alpha1'
}
}
}
}
And this is the project level gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
maven{
url "https://jitpack.io"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath "io.realm:realm-gradle-plugin:3.5.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
This is the error I get when I remove the ReLinker libraries:
Process: org.innoversetech.wifinity, PID: 22788
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/getkeepsafe/relinker/ReLinker;
at io.realm.internal.RealmCore.loadLibrary(RealmCore.java:60)
at io.realm.Realm.init(Realm.java:200)
at org.innoversetech.wifinity.MyApplication.onCreate(MyApplication.java:17)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1037)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6496)
at android.app.ActivityThread.access$1800(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7406)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.getkeepsafe.relinker.ReLinker" on path: DexPathList[[zip file "/data/app/org.innoversetech.wifinity-1/base.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_dependencies_apk.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_slice_0_apk.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_slice_1_apk.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_slice_2_apk.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_slice_3_apk.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_slice_4_apk.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_slice_5_apk.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_slice_6_apk.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_slice_7_apk.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_slice_8_apk.apk", zip file "/data/app/org.innoversetech.wifinity-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/org.innoversetech.wifinity-1/lib/arm, /data/app/org.innoversetech.wifinity-1/base.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_dependencies_apk.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_slice_0_apk.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_slice_1_apk.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_slice_2_apk.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_slice_3_apk.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_slice_4_apk.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_slice_5_apk.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_slice_6_apk.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_slice_7_apk.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_slice_8_apk.apk!/lib/armeabi-v7a, /data/app/org.innoversetech.wifinity-1/split_lib_slice_9_apk.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at io.realm.internal.RealmCore.loadLibrary(RealmCore.java:60) 
at io.realm.Realm.init(Realm.java:200) 
at org.innoversetech.wifinity.MyApplication.onCreate(MyApplication.java:17) 
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1037) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6496) 
at android.app.ActivityThread.access$1800(ActivityThread.java:229) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1887) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:7406) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
Suppressed: java.lang.ClassNotFoundException: com.getkeepsafe.relinker.ReLinker
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 14 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
Realm depends on implementation 'com.getkeepsafe.relinker:relinker:1.2.2' (basically "compile"), but I think your issue is caused by
compile 'com.github.thorbenprimke:realm-recyclerview:0.9.25'
Because version 0.9.25 brings in Realm version 2.2.1, so that can clash against Realm 3.5.0.
A possible solution would be to copy the sources of RealmBasedRecyclerViewAdapter to your code so that it doesn't depend on old things.
Another thing you can do is just not use RealmBasedRecyclerViewAdapter, and give a try for RealmRecyclerViewAdapter in realm-android-adapters.
A clean+rebuild might also help.
in your onCreate use,
realmConfiguration = new RealmConfiguration.Builder().build();
realm = Realm.getInstance(realmConfiguration);

Didn't find class "com.example.App" on path: DexPathList

I have this strange error I do not know how to resolve. I test my App in my phone samsung j5 (Marshmellow) and it's working ok. But now i'm testing it in samsung j3 (lollipop) the app crash as startup and the error is this one:
10-02 22:28:59.426 4395-4395/com.example.sony.snapcamera E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.sony.snapcamera, PID: 4395
java.lang.RuntimeException: Unable to instantiate application com.example.sony.snapcamera.App: java.lang.ClassNotFoundException: Didn't find class "com.example.sony.snapcamera.App" on path: DexPathList[[zip file "/data/app/com.example.sony.snapcamera-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.sony.snapcamera-1/lib/arm, /vendor/lib, /system/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:661)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6002)
at android.app.ActivityThread.access$1700(ActivityThread.java:218)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6934)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.sony.snapcamera.App" on path: DexPathList[[zip file "/data/app/com.example.sony.snapcamera-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.sony.snapcamera-1/lib/arm, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.Instrumentation.newApplication(Instrumentation.java:1003)
at android.app.LoadedApk.makeApplication(LoadedApk.java:651)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6002) 
at android.app.ActivityThread.access$1700(ActivityThread.java:218) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:145) 
at android.app.ActivityThread.main(ActivityThread.java:6934) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
Suppressed: java.lang.NoClassDefFoundError: com.example.sony.snapcamera.App
at dalvik.system.DexFile.defineClassNative(Native Method)
at dalvik.system.DexFile.defineClass(DexFile.java:226)
at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
at dalvik.system.DexPathList.findClass(DexPathList.java:321)
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
... 14 more
Suppressed: java.lang.ClassNotFoundException: com.example.sony.snapcamera.App
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 13 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
This is my AndroidManifest :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sony.snapcamera">
.....
<application
android:name="com.example.sony.snapcamera.App"
android:allowBackup="true"
android:hardwareAccelerated="true"
android:icon="#mipmap/App_icon"
android:label="#string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="#style/AppTheme"
>
...
This is my App class :
package com.example.sony.snapcamera;
import android.app.Application;
import android.content.Context;
import com.adobe.creativesdk.foundation.AdobeCSDKFoundation;
import com.adobe.creativesdk.foundation.auth.IAdobeAuthClientCredentials;
import com.bumptech.glide.request.target.ViewTarget;
public class App extends Application implements IAdobeAuthClientCredentials {
/* Be sure to fill in the two strings below. */
private static final String CREATIVE_SDK_CLIENT_ID = "";
private static final String CREATIVE_SDK_CLIENT_SECRET = "";
private static final String CREATIVE_SDK_REDIRECT_URI = "";
private static final String[] CREATIVE_SDK_SCOPES = {"email", "profile", "address"};
#Override
public void onCreate() {
super.onCreate();
ViewTarget.setTagId(R.id.glide_tag);
AdobeCSDKFoundation.initializeCSDKFoundation(getApplicationContext());
}
#Override
public String getClientID() {
return CREATIVE_SDK_CLIENT_ID;
}
#Override
public String getClientSecret() {
return CREATIVE_SDK_CLIENT_SECRET;
}
#Override
public String[] getAdditionalScopesList() {
return CREATIVE_SDK_SCOPES;
}
#Override
public String getRedirectURI() {
return CREATIVE_SDK_REDIRECT_URI;
}
}
Here it is my app gradle :
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
android {
configurations.all {
resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.1'
}
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example.sony.snapcamera"
minSdkVersion 21
targetSdkVersion 25
multiDexEnabled true
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
manifestPlaceholders = [appPackageName: "${applicationId}"]
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/DEPENDENCIES'
pickFirst 'AndroidManifest.xml'
}
dexOptions {
jumboMode true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
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 'com.android.support:appcompat-v7:25.3.1'
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.makeramen:roundedimageview:2.2.1'
compile 'com.github.XunMengWinter:CircularAnim:0.3.4'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.github.zomato:androidphotofilters:1.0.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:design:25.3.1'
compile 'com.github.chrisbanes:PhotoView:1.3.1'
compile 'com.writingminds:FFmpegAndroid:0.3.2'
compile 'com.google.firebase:firebase-database:11.4.0'
compile 'com.google.android.gms:play-services:11.4.0'
compile 'com.google.maps.android:android-maps-utils:0.4.3'
compile 'com.firebaseui:firebase-ui:0.4.0'
compile 'com.google.firebase:firebase-auth:11.4.0'
compile 'com.google.firebase:firebase-crash:11.4.0'
compile 'com.google.code.gson:gson:2.8.1'
// compile 'com.firebase:geofire-android:2.1.1'
compile 'com.algolia:algoliasearch-android:3.10.1'
// compile 'com.android.support:cardview-v7:25.1.1'
/* Add the CSDK framework dependencies (Make sure these version numbers are correct) */
compile 'com.adobe.creativesdk.foundation:auth:0.9.1251'
compile 'com.adobe.creativesdk:image:4.8.4'
compile 'com.localytics.android:library:3.8.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
I already tested to clean and rebuild project, I also tested to disable instant run but nothing worked for me, I can't even realise the problem because it works very good in j5 and it crash in j3, Please help.
enable multidex,
1. Add following dependency in app gradle file compile
'com.android.support:multidex:1.0.1' and
defaultConfig {
multiDexEnabled true
}
2. Your application class need to extends MultiDexApplication

Crash app when using AndroidAnnotations with support:appcompat-v7 version 23 +

I'm using lastest AndroidAnnotations 4.1.0(link) and try to change appcompat to 24.2.1 to support targetVersion 24. But, My app is crashed when using appcompat-v7 version 23+, however, it runs normally on appcompat-v7:22.2.0. Any suggestion is appriciated. Below is my error logs:
FATAL EXCEPTION: main
Process: ABC, PID: 1275
java.lang.RuntimeException: Unable to start activity ComponentInfo{MyPackage/MyPackage.activities.MainActivity_}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2237)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:212)
at android.app.ActivityThread.main(ActivityThread.java:5137)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:718)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at MyPackage.activities.MainActivity_.setContentView(MainActivity_.java:51)
at MyPackage.activities.MainActivity_.onCreate(MainActivity_.java:40)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2201)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286) 
at android.app.ActivityThread.access$800(ActivityThread.java:144) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:212) 
at android.app.ActivityThread.main(ActivityThread.java:5137) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:718) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.IllegalArgumentException: Binary XML file line #7: Must specify unique android:id, android:tag, or have a parent with an id for MyPackage.fragments.MainFragment_
at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2387)
at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:376)
at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:33)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:75)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
at MyPackage.activities.MainActivity_.setContentView(MainActivity_.java:51) 
at MyPackage.activities.MainActivity_.onCreate(MainActivity_.java:40) 
at android.app.Activity.performCreate(Activity.java:5231) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2201) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2286) 
at android.app.ActivityThread.access$800(ActivityThread.java:144) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1246) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:212) 
at android.app.ActivityThread.main(ActivityThread.java:5137) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:718) 
at dalvik.system.NativeStart.main(Native Method) 
And this is my gradle
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
...
def PACKAGE_NAME = "MyPackage"
def VERSION_CODE = 1
def VERSION_NAME = "1.0.0"
def AAVersion = '4.1.0'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
buildscript {
repositories {
mavenCentral()
...
}
dependencies {
// replace with the current version of the Android plugin
classpath 'com.android.tools.build:gradle:2.2.0'
// replace with the current version of the android-apt plugin
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
...
}
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName PACKAGE_NAME
}
}
repositories {
mavenCentral()
...
}
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
applicationId PACKAGE_NAME
minSdkVersion 14
targetSdkVersion 24
versionCode VERSION_CODE
versionName VERSION_NAME
// Enabling multidex support.
multiDexEnabled true
}
signingConfigs {
...
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
...
}
dexOptions {
...
}
...
}
dependencies {
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
...
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.google.android.gms:play-services-maps:9.6.1'
compile 'com.google.android.gms:play-services-location:9.6.1'
compile 'com.google.android.gms:play-services-gcm:9.6.1'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.retrofit2:converter-jackson:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0'
compile('com.squareup.okhttp3:okhttp:3.2.0') {
exclude module: 'okhttp'
}
compile 'io.reactivex:rxandroid:1.0.1'
compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'
compile 'com.github.mrmike:ok2curl:0.2.3'
compile 'de.greenrobot:eventbus:2.4.0'
compile 'com.android.support:multidex:1.0.1'
compile('com.crashlytics.sdk.android:crashlytics:2.6.2#aar') {
transitive = true;
}
}
repositories {
flatDir {
dirs 'libs'
}
}
As it is an be ready from the stack trace, the problem is that you did not add any ID neither a tag for your Fragment in the xml layout where you declare an instance if it. The Fragment in question is MyPackage.fragments.MainFragment_. This is a standard error, not related to AndroidAnnotations.
<fragment android:name="MyPackage.fragments.MainFragment_"
android:id="#+id/fragment_id" <!-- Add an ID -->
android:layout_width="match_parent"
android:layout_height="match_parent" />

Firebase realtime database dependency stops app

I can't understand where have i gone wrong in setting up firebase realtime database. I have followed the steps given on firebase docs and hence don't understand why this issue rose. Can't figure what's gone wrong??
My crash log :
FATAL EXCEPTION: main
Process: co.stemapps.alpha, PID: 16807
java.lang.NoSuchMethodError: No static method zzeq(Landroid/content/Context;)Lcom/google/android/gms/internal/zzalp; in class Lcom/google/android/gms/internal/zzalp; or its super classes (declaration of 'com.google.android.gms.internal.zzalp' appears in /data/data/co.stemapps.alpha/files/instant-run/dex/slice-com.google.firebase-firebase-database-9.2.1_4a374bd9658b1411c8c3a3826ddeec88e7022694-classes.dex)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
at com.google.firebase.FirebaseApp.zzek(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1730)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1705)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:5039)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4634)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4574)
at android.app.ActivityThread.access$1600(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1382)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5294)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
build.gradle :
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "co.stemapps.alpha"
minSdkVersion 16
targetSdkVersion 24
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('com.twitter.sdk.android:twitter-core:1.6.6#aar') {
transitive = true
}
compile('com.twitter.sdk.android:twitter:1.13.1#aar') {
transitive = true;
}
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:design:24.1.1'
compile 'com.github.scottyab:showhidepasswordedittext:0.8'
compile 'com.mikhaellopez:circularimageview:3.0.2'
compile 'com.google.firebase:firebase-auth:9.4.0'
compile 'com.google.android.gms:play-services-auth:9.4.0'
compile 'com.facebook.android:facebook-android-sdk:4.+'
compile 'com.squareup.dagger:dagger:1.2.2'
compile 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'com.google.firebase:firebase-database:9.4.0'
compile 'com.google.firebase:firebase-core:9.4.0'
}
apply plugin: 'com.google.gms.google-services'
Can anyone help me fix it?

Google Drive call causes Android app to crash

I am working on an Android app which has Google Drive but even though it compiles fine it crashes when I try and do anything.
This is a pre-existing, it hasn't been worked on in and was originally an Eclipse project. Someone reported so imported into Android Studio and fixed the bug however when I try and do anything with Google Drive I get the following app crash.
Process: com.BoardiesITSolutions.PasswordManager, PID: 23121
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/base/Preconditions;
at com.google.api.client.googleapis.extensions.android.accounts.GoogleAccountManager.<init>(GoogleAccountManager.java:41)
at com.google.api.client.googleapis.extensions.android.accounts.GoogleAccountManager.<init>(GoogleAccountManager.java:48)
at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.<init>(GoogleAccountCredential.java:78)
at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.usingOAuth2(GoogleAccountCredential.java:97)
at com.BoardiesITSolutions.PasswordManager.Settings$SynchronisationSettings.enableGoogleDrive(Settings.java:575)
at com.BoardiesITSolutions.PasswordManager.Settings$SynchronisationSettings.access$000(Settings.java:420)
at com.BoardiesITSolutions.PasswordManager.Settings$SynchronisationSettings$1.onPreferenceChange(Settings.java:510)
at android.preference.Preference.callChangeListener(Preference.java:928)
at android.preference.ListPreference.onDialogClosed(ListPreference.java:281)
at android.preference.DialogPreference.onDismiss(DialogPreference.java:391)
at android.app.Dialog$ListenersHandler.handleMessage(Dialog.java:1257)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5312)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.common.base.Preconditions" on path: DexPathList[[zip file "/data/app/com.BoardiesITSolutions.PasswordManager-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
            at com.google.api.client.googleapis.extensions.android.accounts.GoogleAccountManager.<init>(GoogleAccountManager.java:41)
            at com.google.api.client.googleapis.extensions.android.accounts.GoogleAccountManager.<init>(GoogleAccountManager.java:48)
            at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.<init>(GoogleAccountCredential.java:78)
            at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.usingOAuth2(GoogleAccountCredential.java:97)
            at com.BoardiesITSolutions.PasswordManager.Settings$SynchronisationSettings.enableGoogleDrive(Settings.java:575)
            at com.BoardiesITSolutions.PasswordManager.Settings$SynchronisationSettings.access$000(Settings.java:420)
            at com.BoardiesITSolutions.PasswordManager.Settings$SynchronisationSettings$1.onPreferenceChange(Settings.java:510)
            at android.preference.Preference.callChangeListener(Preference.java:928)
            at android.preference.ListPreference.onDialogClosed(ListPreference.java:281)
            at android.preference.DialogPreference.onDismiss(DialogPreference.java:391)
            at android.app.Dialog$ListenersHandler.handleMessage(Dialog.java:1257)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5312)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
Suppressed: java.lang.ClassNotFoundException: com.google.common.base.Preconditions
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 19 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Below is the part of the code that crashes:
private void enableGoogleDrive()
{
credential = GoogleAccountCredential.usingOAuth2(context, DriveScopes.DRIVE);
startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
}
Its the credential = ... that is causing the crash.
Below is my build.gradle file
apply plugin: 'com.android.application'
android {
compileOptions.encoding = 'ISO-8859-1'
compileSdkVersion 21
buildToolsVersion "21.1.2"
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
defaultConfig {
applicationId "com.BoardiesITSolutions.PasswordManager"
minSdkVersion 14
targetSdkVersion 21
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_5
targetCompatibility JavaVersion.VERSION_1_5
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
repositories {
mavenLocal()
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile ('com.google.android.gms:play-services:7.0.0') {
exclude module: 'support-v4'
}
compile files('libs/commons-codec-1.4.jar');
compile files('libs/google-api-services-drive-v2-rev30-1.12.0-beta.jar')
compile ('com.android.support:appcompat-v7:21.0.0') {
exclude module: 'support-v4'
}
//compile 'com.android.support:support-v4:21.0.0'
compile ('com.BoardiesITSolutions:CritiMon:1.0') {
exclude module: 'support-v4'
}
compile ('com.BoardiesITSolutions:Library:1.1') {
exclude module: 'support-v4'
}
}
Update
I've found there is was a jar library I was missing. I've added this jar called google-collect-1.0.jar and rebuilt. When I run the above code it now works and I get a list of Google accounts that I select. However, when it then tries to do something with Drive I now get a different error.
FileList file = service.files().list().execute();
On the above line is what causes the crash. service is created by calling
credential.setSelectedAccountName(settings.getString("google_drive_account_name", ""));
Drive service = getDriveService(credential);
getDriveService is as follows:
private Drive getDriveService(GoogleAccountCredential credential)
{
return new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build();
}
The error I now get is:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/common/primitives/UnsignedInteger;
at com.google.api.client.util.Data.<clinit>(Data.java:81)
at com.google.api.client.util.FieldInfo.<init>(FieldInfo.java:131)
at com.google.api.client.util.FieldInfo.of(FieldInfo.java:104)
at com.google.api.client.util.ClassInfo.<init>(ClassInfo.java:174)
at com.google.api.client.util.ClassInfo.of(ClassInfo.java:92)
at com.google.api.client.util.GenericData.<init>(GenericData.java:79)
at com.google.api.client.util.GenericData.<init>(GenericData.java:61)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.<init>(AbstractGoogleClientRequest.java:101)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.<init>(AbstractGoogleJsonClientRequest.java:57)
at com.google.api.services.drive.DriveRequest.<init>(DriveRequest.java:51)
at com.google.api.services.drive.Drive$Files$List.<init>(Drive.java:2914)
at com.google.api.services.drive.Drive$Files.list(Drive.java:2904)
at com.BoardiesITSolutions.PasswordManager.Classes.DriveSync$1.run(DriveSync.java:137)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.common.primitives.UnsignedInteger" on path: DexPathList[[zip file "/data/app/com.BoardiesITSolutions.PasswordManager-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
            at com.google.api.client.util.Data.<clinit>(Data.java:81)
            at com.google.api.client.util.FieldInfo.<init>(FieldInfo.java:131)
            at com.google.api.client.util.FieldInfo.of(FieldInfo.java:104)
            at com.google.api.client.util.ClassInfo.<init>(ClassInfo.java:174)
            at com.google.api.client.util.ClassInfo.of(ClassInfo.java:92)
            at com.google.api.client.util.GenericData.<init>(GenericData.java:79)
            at com.google.api.client.util.GenericData.<init>(GenericData.java:61)
            at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.<init>(AbstractGoogleClientRequest.java:101)
            at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.<init>(AbstractGoogleJsonClientRequest.java:57)
            at com.google.api.services.drive.DriveRequest.<init>(DriveRequest.java:51)
            at com.google.api.services.drive.Drive$Files$List.<init>(Drive.java:2914)
            at com.google.api.services.drive.Drive$Files.list(Drive.java:2904)
            at com.BoardiesITSolutions.PasswordManager.Classes.DriveSync$1.run(DriveSync.java:137)
            at java.lang.Thread.run(Thread.java:818)
Suppressed: java.lang.ClassNotFoundException: com.google.common.primitives.UnsignedInteger
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 15 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Update 2
I think I have made some progress but I'm still getting a crash although different now.
Below is how my gradle file now looks
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
}
}
apply plugin: 'com.android.application'
android {
compileOptions.encoding = 'ISO-8859-1'
compileSdkVersion 21
buildToolsVersion "21.1.2"
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'README'
exclude 'com.google.api.client.json.JsonFactory.class'
//exclude 'GwtCompatible.class'
/*exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/notice.txt'
exclude 'com.google.api.client.auth.oauth2.AuthorizationCodeFlow.class'
}
defaultConfig {
applicationId "com.BoardiesITSolutions.PasswordManager"
minSdkVersion 14
targetSdkVersion 21
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
repositories {
mavenLocal()
mavenCentral()
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('com.google.android.gms:play-services:7.0.0') {
exclude module: 'support-v4'
}
compile('com.google.http-client:google-http-client:1.18.0-rc') {
exclude group: 'xpp3'
exclude group: 'org.apache.httpcomponents'
exclude group: 'junit'
exclude group: 'com.google.android'
}
compile('com.google.http-client:google-http-client-jackson2:1.18.0-rc')
compile('com.android.support:appcompat-v7:21.0.0') {
exclude module: 'support-v4'
}
compile('com.BoardiesITSolutions:CritiMon:1.0') {
exclude module: 'support-v4'
}
compile('com.BoardiesITSolutions:Library:1.1') {
}
compile ('com.google.api-client:google-api-client-android:1.18.0-rc') {
}
compile ('com.google.http-client:google-http-client-gson:1.18.0-rc') {
}
}
Below is a screenshot of what my libs directory contains
The error that I am now getting is:
Process: com.BoardiesITSolutions.PasswordManager, PID: 25495
java.lang.NoSuchMethodError: No direct method <init>(Lcom/google/api/client/http/HttpTransport;Lcom/google/api/client/http/HttpRequestInitializer;Ljava/lang/String;Ljava/lang/String;Lcom/google/api/client/json/JsonObjectParser;Lcom/google/api/client/googleapis/services/GoogleClientRequestInitializer;Ljava/lang/String;Z)V in class Lcom/google/api/client/googleapis/services/json/AbstractGoogleJsonClient; or its super classes (declaration of 'com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient' appears in /data/app/com.BoardiesITSolutions.PasswordManager-2/base.apk)
at com.google.api.services.drive.Drive.<init>(Drive.java:135)
at com.google.api.services.drive.Drive$Builder.build(Drive.java:6542)
at com.BoardiesITSolutions.PasswordManager.Classes.DriveSync.getDriveService(DriveSync.java:365)
at com.BoardiesITSolutions.PasswordManager.Classes.DriveSync.access$000(DriveSync.java:65)
at com.BoardiesITSolutions.PasswordManager.Classes.DriveSync$1.run(DriveSync.java:134)
at java.lang.Thread.run(Thread.java:818)
I cannot see what is wrong with this at all, everything I try seems to result in the same problem. Everything compiles fine its just when the code executes it crashes.
The line that it crashes on now is below:
return new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build();
I have finally figured out a solution. Below is a screenshot of the libraries in my libs folder
Below is my gradle file
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
}
}
apply plugin: 'com.android.application'
android {
compileOptions.encoding = 'ISO-8859-1'
compileSdkVersion 21
buildToolsVersion "21.1.2"
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'com.google.gson.JsonSerializer'
exclude 'constant-values.html'
exclude 'overview-summary.html'
exclude 'package-list'
exclude 'overview-tree.html'
exclude 'allclasses-frame.html'
exclude 'allclasses-noframe.html'
exclude 'stylesheet.css'
exclude 'index-all.html'
exclude 'deprecated-list.html'
exclude 'index.html'
exclude 'overview-frame.html'
exclude 'help-doc.html'
}
defaultConfig {
applicationId "com.BoardiesITSolutions.PasswordManager"
minSdkVersion 14
targetSdkVersion 21
multiDexEnabled = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
repositories {
mavenLocal()
mavenCentral()
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
}
dependencies {
compile ('com.google.android.gms:play-services-ads:7.0.0') {
exclude module: 'support-v4'
}
compile ('com.google.android.gms:play-services-drive:7.0.0') {
exclude module: 'support-v4'
}
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('com.google.android.gms:play-services:7.0.0') {
exclude module: 'support-v4'
}
compile 'com.google.guava:guava:17.0'
compile('com.android.support:appcompat-v7:21.0.0') {
exclude module: 'support-v4'
}
compile('com.BoardiesITSolutions:CritiMon:1.0') {
exclude module: 'support-v4'
}
compile('com.BoardiesITSolutions:Library:1.1') {
}
}

Categories

Resources