2015-03-27 17 views
7

Đây là tập tin .gradle tôi:Android với Gradle (Java kết thúc với phi zero-giá trị xuất cảnh 2)

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "com.test.test" 
     minSdkVersion 15 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    packagingOptions { 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/NOTICE' 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:21.0.3' 

    compile 'com.mcxiaoke.volley:library:1.0.15' 
    compile 'org.glassfish.jersey.media:jersey-media-json-jackson:2.17' 
} 

Khi tôi cố gắng chạy ứng dụng Android của tôi, tôi nhận được lỗi sau:

Lỗi: Thực hiện không thành công cho tác vụ ': app: dexDebug'.

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with non-zero exit value 2

Tôi gặp lỗi này khi thêm tệp gradle vào thư viện jackson. Googling một thời gian, tôi đã tìm thấy rằng thư viện jackson tương thích với các ứng dụng Android, và nó nhanh hơn so với các thư viện khác như gson.

Tôi có thể giải quyết nó như thế nào? Tôi là người mới bắt đầu sử dụng Android.

Trả lời

3

Tôi nghĩ bạn nên thay đổi Java JDK thay đổi jvm v8 cho jdk7. Liên kết này có thể giúp bạn: Is it possible to use Java 8 for Android development?

Có thể xảy ra lỗi phụ thuộc khác, xóa sạch trước khi tạo. Và thay đổi thư viện jackson của bạn cho điều này:

compile 'com.fasterxml.jackson.core:jackson-databind:2.2.+' 
compile 'com.fasterxml.jackson.core:jackson-core:2.2.+' 
compile 'com.fasterxml.jackson.core:jackson-annotations:2.2.+' 
+0

OK, giờ nó hoạt động. Bất kể phiên bản java 8 nào không được hỗ trợ, điều gây ra lỗi là thư viện. Thay thế 3 thư viện mà bạn đã đăng hoạt động tốt cả phiên bản 7 và 8. Cảm ơn bạn rất nhiều. – Hammerin87

+0

Vui lòng trợ giúp;) – encastellano

+3

Dường như vấn đề là do cách thức phụ thuộc gradle được chỉ định. Trong trường hợp của tôi, tôi đã sử dụng biên dịch 'com.google.android.gms: play-services: 7.5. +' Đã gây ra lỗi, tuy nhiên, tôi đã thay đổi nó để biên dịch 'com.google.android.gms: play-services: 7,5.0 'và vấn đề đã được giải quyết –

3

Khó chịu vấn đề này có thể có nhiều lý do. Trong trường hợp của tôi, đó là vì số dòng tối đa bị vượt quá. Nó là như vậy khó chịu rằng thông điệp Android Studio chương trình không có nghĩa là bất cứ điều gì, nhưng bằng cách nào đó tôi tìm thấy giải pháp như sau:

https://developer.android.com/tools/building/multidex.html

Bạn cần phải tạo ra một lớp mà kéo dài MultiDexApplication, và ghi đè lên các phương pháp sau đây:

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

Đừng quên thêm "tên" vào thẻ bên trong trong tệp AndroidManifest của bạn như được mô tả trong liên kết ở trên.

+0

Multidexing có thể gây ra các vấn đề hiệu suất trong sản xuất. –

+0

Và sau đó ghi đè lên phương thức trong lớp khởi động: @Override protected void attachBaseContext (Context base) {super.attachBaseContext (base); MultiDex.install (điều này); } –

1

Tôi đã sao chép thư viện được yêu cầu bên trong my_project/app/libs và cũng đã thêm phụ thuộc vào build.gradle. Vì vậy, trong trường hợp của tôi, tôi đã xóa thư viện mà tôi đã sao chép trong my_project/app/libs. Khi gradle duy trì tất cả sự phụ thuộc, tôi không phải đặt thư viện vào/libs. Điều này đã khắc phục được sự cố của tôi.

1

Có thể bạn có một sự phụ thuộc gây không tương thích

ví dụ:

1

Sửa đường JDK giải quyết vấn đề.

Nhấp chuột phải vào Dự án> Mở cài đặt Mô-đun> Vị trí SDK> Trong JDK vị trí cung cấp đường dẫn đến thư mục JDK.

+0

Giải pháp này đã được cung cấp bởi câu trả lời được chấp nhận. Thay đổi Java8 thành Java7 –

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