I am getting following error in Samsung note 2 in 4.4.2 , version. I also have tried with HTC One X+ 4.2.2. I think its pre-lollipop. Cause its working fine on Lollipop. any guess?
This is my gradle file
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
}
defaultConfig {
multiDexEnabled true
applicationId "com.example.app"
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':volley')
compile project(':linkedin-sdk')
compile project(':facebook')
compile files('libs/ormlite-android-4.49-SNAPSHOT.jar')
compile files('libs/ormlite-core-4.49-SNAPSHOT.jar')
compile project(':library')
compile('org.apache.httpcomponents:httpmime:4.3.6') {
exclude module: 'httpclient'
}
compile 'org.apache.httpcomponents:httpclient-android:4.3.5'
compile 'com.crittercism:crittercism-android-agent:5.0.6'
compile 'com.squareup.picasso:picasso:2.3.2'
compile files('libs/json_simple-1.1.jar')
compile 'com.android.support:design:22.2.0'
compile project(':dropboxChooserSDK')
compile 'com.google.android.gms:play-services:7.5.0'
compile files('libs/google-api-client-1.20.0.jar')
compile files('libs/google-api-client-android-1.20.0.jar')
compile files('libs/google-api-services-drive-v2-rev173-1.20.0.jar')
compile files('libs/google-http-client-1.20.0.jar')
compile files('libs/google-http-client-android-1.20.0.jar')
compile files('libs/google-http-client-gson-1.20.0.jar')
compile files('libs/google-oauth-client-1.20.0.jar')
compile files('libs/jsr305-1.3.9.jar')
compile files('libs/gson-2.2.4.jar')
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:recyclerview-v7:22.2.0'
compile 'com.android.support:cardview-v7:22.2.0'
}
Exception I am getting.
26927-26927/com.example.app E/dalvikvm﹕ Could not find class 'android.support.v7.internal.view.menu.MenuBuilder', referenced from method android.support.v7.app.AppCompatDelegateImplV7.initializePanelMenu
06-09 21:12:24.014 26927-26927/com.example.app E/dalvikvm﹕ Could not find class 'android.support.v7.internal.view.menu.MenuBuilder', referenced from method android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onCreatePanelMenu
06-09 21:12:24.014 26927-26927/com.example.app E/dalvikvm﹕ Could not find class 'android.support.v7.internal.view.menu.MenuBuilder', referenced from method android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onPreparePanel
06-09 21:12:24.019 26927-26927/com.example.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.app, PID: 26927
java.lang.NoClassDefFoundError: android.support.v4.view.LayoutInflaterCompat
at android.support.v7.app.AppCompatDelegateImplV7.installViewFactory(AppCompatDelegateImplV7.java:812)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:57)
at com.example.app.BaseActivity.onCreate(BaseActivity.java:37)
at com.example.app.SplashScreenActivity.onCreate(SplashScreenActivity.java:29)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
at android.app.ActivityThread.access$900(ActivityThread.java:175)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
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:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
I have the same problem (app will crashed in all devices <= Android 4.4, but worked fine when Android >= 5.0) with the following build.gradle
setting:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.aams.going"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
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:22.2.0'
compile 'com.facebook.android:facebook-android-sdk:4.0.0'
compile 'com.google.android.gms:play-services:7.5.0'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.jakewharton:butterknife:6.1.0'
compile 'com.google.apis:google-api-services-youtube:v3-rev141-1.20.0'
compile 'com.google.api-client:google-api-client-android:1.20.0'
compile 'com.google.api-client:google-api-client-gson:1.20.0'
compile 'com.orhanobut:logger:1.4'
compile 'com.github.rey5137:material:1.1.1'
compile 'com.afollestad:material-dialogs:0.7.6.0'
}
It is caused by multiDexEnabled true
with Google Play services API and google-api in gradle.
I solved this problem by removing multiDexEnabled true
and specifying only the specific Google Play services APIs my app uses.
multiDexEnabled true
.compile 'com.google.android.gms:play-services-identity:7.5.0'
instead of compile 'com.google.android.gms:play-services:7.5.0'
Here is my final and worked build.gradle
:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.aams.going"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
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:22.2.0'
compile 'com.facebook.android:facebook-android-sdk:4.0.0'
compile 'com.google.android.gms:play-services-identity:7.5.0'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.jakewharton:butterknife:6.1.0'
compile 'com.google.apis:google-api-services-youtube:v3-rev141-1.20.0'
compile 'com.google.api-client:google-api-client-android:1.20.0'
compile 'com.google.api-client:google-api-client-gson:1.20.0'
compile 'com.orhanobut:logger:1.4'
compile 'com.github.rey5137:material:1.1.1'
compile 'com.afollestad:material-dialogs:0.7.6.0'
}
Enable multidex could rusult in a runtime exeption java.lang.NoClassDefFoundError: then, Acorde to https://developers.google.com/android/guides/setup : If the number of method references in your app exceeds the 65K limit, your app may fail to compile. You may be able to mitigate this problem when compiling your app by specifying only the specific Google Play services APIs your app uses, instead of all of them.
Example:
compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'
compile 'com.google.android.gms:play-services-base:8.1.0'
compile 'com.google.android.gms:play-services-games:8.1.0'
In the link you can find a list of Apis. If you are no using google play services, then apply the same principle to your dependencies.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With