2015-09-21 13 views
8

Ciao, sto ricevendo questo errore utilizzando Android Studio in fase di runtime ma solo su dispositivi con una versione dell'SDK < = 19. Tutto viene compilato ok ma ottengo questo errore sulla mia classe databaseHelper.Android Studio E/dalvikvm: Impossibile trovare la classe '.DatabaseHelper', con riferimento al metodo .DatabaseManager

java.lang.NoClassDefFoundError: 

Ecco la mia app build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion '23.0.1' 
    useLibrary 'org.apache.http.legacy' 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
     } 
    } 
} 



dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.google.android.gms:play-services:7.8.0' 
    compile 'com.android.support:appcompat-v7:23.0.1' 
    compile 'com.github.johnpersano:supertoasts:[email protected]' 
    compile 'com.readystatesoftware.systembartint:systembartint:1.0.3' 
    compile 'com.navercorp.pulltorefresh:library:[email protected]' 
    compile 'com.parse.bolts:bolts-android:1.2.1' 
    compile 'com.j256.ormlite:ormlite-android:4.48' 
    compile 'com.j256.ormlite:ormlite-core:4.48' 
} 

La mia classe databaseHelper estende OrmLiteSqliteOpenHelper Tutto stava funzionando benissimo mentre la mia compileSdkVersion era al 19 Ecco quello che ho aggiornato:

  • gradle: classpath 'com.android.tools.build:gradle:1.1.0'> 1.3.0
  • sdk Versione: compileSdkVersion 19> 23
  • AppCompat: com.android.support:appcompat-v7:19.0.1> 23
  • play-servizi

mio databaseHelper Class è nello stesso pacchetto di altri classi che funzionano bene!

Grazie per il vostro aiuto

+0

Ho lo stesso problema. Sto ancora cercando di scoprire che cosa è lo – Gatunox

+0

BTW ho notato che ogni posto dove sono stato creare classi anonime ottengo il E/dalvikvm: Impossibile trovare l'errore di classe sul logcat. Se rimuovi la creazione della classe anonima, sembra funzionare. ma la cosa WIERD è questa che funziona e funziona ancora su API maggiori di 19 – Gatunox

+1

Chiunque ha una soluzione per questo? Ho lo stesso numero – cpalosrejano

risposta

0

Ho avuto lo stesso problema qualche tempo un, provate a disattivare ProGuard

minifyEnabled false 
+1

Grazie ma è sempre lo stesso ( – totteire

1

ho trovato il problema. MultiDex non è supportato correttamente prima del lollypop. Una volta rimossi le librerie aggiuntive e rimosso l'impostazione multidex su gradle, tutto ha funzionato correttamente.

rimuovere.

multiDexEnabled true 

saluti

10

come avete multiDexEnabled true nella vostra build.gradle. Assicurati che la classe dell'applicazione sia estesa a MultiDexApplication anziché alla classe Application.

In alternativa, come suggerito nei documenti, è possibile aggiungere il seguente metodo alla classe dell'applicazione.

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 
+1

Grazie, mi ha aiutato. Ho cambiato l'applicazione in MultiDexApplication – ch3tanz