2015-09-21 23 views
8

Xin chào tôi đang gặp lỗi này khi sử dụng Android Studio trên thời gian chạy nhưng chỉ trên các thiết bị có phiên bản SDK < = 19. Mọi thứ biên dịch ok nhưng tôi nhận được lỗi này trên lớp DatabaseHelper của tôi.Android Studio E/dalvikvm ﹕ Không thể tìm thấy lớp '.DatabaseHelper', được tham chiếu từ phương thức .DatabaseManager

java.lang.NoClassDefFoundError: 

Đây là build.gradle ứng dụng của tôi:

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' 
} 

lớp databaseHelper My mở rộng OrmLiteSqliteOpenHelper Mọi thứ đã được làm việc tốt trong khi compileSdkVersion tôi còn nằm ở 19 Dưới đây là những gì tôi Cập nhật:

  • gradle: classpath 'com.android.tools.build:gradle:1.1.0'> 1.3.0
  • sdk Phiên bản: compileSdkVersion 19> 23
  • appcompat: com.android.support:appcompat-v7:19.0.1> 23
  • play-dịch vụ

My databaseHelper Class là trong cùng một gói hơn lớp khác mà làm việc tốt!

Cảm ơn bạn đã giúp đỡ của bạn

+0

Tôi gặp vấn đề tương tự. Tôi vẫn đang cố gắng để tìm ra những gì cuase nó – Gatunox

+0

BTW tôi đã nhận thấy rằng mọi nơi tôi tạo ra các lớp vô danh tôi nhận được E/dalvikvm: Không thể tìm thấy lỗi lớp trên logcat. Nếu bạn loại bỏ việc tạo lớp ẩn danh, nó dường như hoạt động. nhưng điều WIERD được sử dụng để làm việc, và vẫn hoạt động trên API lớn hơn 19 – Gatunox

+1

Bất cứ ai có giải pháp cho điều này? Tôi có cùng một vấn đề – cpalosrejano

Trả lời

0

tôi đã cùng một vấn đề một chút thời gian một, cố gắng tắt ProGuard

minifyEnabled false 
+1

Cảm ơn bạn nhưng nó vẫn như cũ; ( – totteire

1

tôi đã tìm thấy vấn đề. MultiDex không được hỗ trợ hiệu chỉnh trước khi lollypop. Một khi tôi gỡ bỏ các thư viện bổ sung và loại bỏ cài đặt multidex trên tất cả mọi thứ gradle bắt đầu làm việc tốt.

xóa.

multiDexEnabled true 

Trân

10

Như bạn có multiDexEnabled true trong build.gradle của bạn. Đảm bảo rằng lớp ứng dụng của bạn đang mở rộng MultiDexApplication thay vì lớp học Application.

Hoặc, như được đề xuất trong tài liệu, bạn có thể thêm phương thức sau vào lớp ứng dụng của mình.

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

Cảm ơn, Nó đã giúp tôi. Tôi đã thay đổi Đơn đăng ký thành MultiDexApplication – ch3tanz

Các vấn đề liên quan