2015-11-25 29 views
41

Tôi nhận được ngoại lệ dưới đây khi tôi đang cố gắng để chạy các ứng dụng sử dụng Android Studio:Android Studio TransformException: Lỗi: Thực hiện thất bại cho nhiệm vụ ': Ứng dụng: transformClassesWithDexForDebug'

Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_05\bin\java.exe'' finished with non-zero exit value 2

+1

Hãy thử làm như sau: http://stackoverflow.com/a/32889565 Hy vọng điều đó sẽ hữu ích. –

+2

Phiên bản 'com.android.tools.build: gradle' của bạn là gì? –

+0

Kiểm tra điều này https://stackoverflow.com/questions/33717886/errorexecution-failed-for-task-apptransformclasseswithdexfordebug – Yaman

Trả lời

52

Tôi có cùng một vấn đề, sau khi vài giờ nghiên cứu, tôi tìm thấy một giải pháp để sửa chữa nó.

Bạn nên cố định build.gradle:

android { 

    compileSdkVersion .. 
    buildToolsVersion '...' 

    defaultConfig { 
     ... 
     targetSdkVersion .. 
     multiDexEnabled true // this line will solve this problem 
    } 
} 

If the number of method references in your app exceeds the 65K limit, your app may fail to compile.

Để biết thông tin về cách để làm điều này, xem Selectively compiling APIs into your executableBuilding Apps with Over 65K Methods

+0

Làm cách nào bạn tìm ra giải pháp này @Danh DC? Làm việc cho tôi nhưng muốn biết làm thế nào bạn có được điều này. –

+1

@MarkaA Nếu số lượng tham chiếu phương pháp trong ứng dụng của bạn vượt quá giới hạn 65K, ứng dụng của bạn có thể không biên dịch được. Bạn có thể giảm thiểu vấn đề này khi biên soạn ứng dụng của mình bằng cách chỉ định các API dịch vụ Google Play cụ thể mà ứng dụng của bạn sử dụng, thay vì tất cả chúng. Để biết thông tin về cách thực hiện việc này, hãy xem https://developers.google.com/android/guides/setup#split và http://developer.android.com/tools/building/multidex.html –

+1

Để rõ ràng, thứ để đặt trong 'build.gradle' là' multiDexEnabled true'. Cũng hơi ngớ ngẩn khi Android Studio không tự động làm điều này, đặc biệt khi phụ thuộc/thư viện xuất hiện để tính vào giới hạn 65K. Ứng dụng của tôi chắc chắn không có nơi nào gần tham chiếu phương pháp 65K trong mã của bên thứ nhất. – aroth

12

trong trường hợp của tôi sử dụng Android Studio 2.0 preview 4 tôi đột nhiên có vấn đề và thêm multiDexEnabled true không giúp đỡ, và cũng sạch sẽ và xây dựng lại đã không giúp đỡ.

do đó, điều duy nhất mà giải quyết nó đối với tôi là xóa tập tin đó:

YOUR_APP_NAME\app\build\intermediates

và chạy các ứng dụng và nó hoạt động.

+1

Sau khi tôi đã làm điều này, tôi đã nhận được một vài lỗi xây dựng thêm về khó khăn trong việc tạo ra một số thư mục trong trung gian, nhưng tự thêm vào dự án tôi đã có thể xây dựng. Cảm ơn @humazed! – safetyOtter

+1

Cảm ơn bạn. Đây là cách duy nhất để sửa chữa nó trong trường hợp của tôi (AS 3.0.1) trên Windows 10 Pro. Tôi đã thử các phương pháp khác (khởi động lại AS, dự án rõ ràng, xây dựng lại dự án, Invalidate cache/restart ...) để không có kết quả. – Hong

4

Để tôi đóng tất cả Android Studio khác đã giải quyết được sự cố.

Tôi đã mở 3 studio android khi tôi gặp lỗi, sau khi đóng 2 tôi không nhận được bất kỳ lỗi nào.

Không cần thêm bất kỳ mã nào liên quan đến multiDex!

Dường như có một số vấn đề về bộ nhớ liên quan đến jvm.

1

Chỉ cần khắc phục sự cố này. Trong trường hợp của tôi, việc xây dựng lại dự án đã giúp tôi. Vì vậy, hãy thử xây dựng lại dự án của bạn.

0

Thêm dòng sau:

multiDexEnabled true 

Bên trong defaultConfig của build.gradle

Như thế này:

defaultConfig{ 
    multiDexEnabled true 
} 
4

Sửa đổi các tập tin build.gradle mô-đun cấp

android { 
    ... 

    // Enabling multidex support. 
    multiDexEnabled true 
} 
... 

}

thêm phụ thuộc biên dịch 'com.android.support:multidex:1.0.0'

Trong biểu hiện của bạn thêm lớp MultiDexApplication

<manifest ...> 
<application 
    ... 
    android:name="android.support.multidex.MultiDexApplication"> 
    ... 
</application> 

http://developer.android.com/studio/build/multidex.html

0

Trường hợp của tôi thay đổi buildToolsVersion từ "24" thành "23.0.2", giải quyết vấn đề.Điều này sẽ giải quyết vấn đề đặc biệt là nếu bạn đang sử dụng cũ Android Studio ít hơn phiên bản 2.

0

Tôi tìm thấy câu trả lời từ here: Sau khi thay đổi các tập tin build.grade như sau

minSdkVersion 21

targetSdkVersion 25

multiDexEnabled true

hoạt động tốt.

0

trong trường hợp của tôi - Làm sạch dự án và xây dựng lại

+0

Đó phải là nhận xét chứ không phải là câu trả lời. – GhostCat

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