9

Tôi đã viết một ứng dụng Android hoạt động tốt cho đến nay. Sau đó, tôi đã thêm các tính năng cho Google Cloud Messaging (GCM). Tôi đã sử dụng dự án demo từ Google có vẻ như đã thêm phân tích và lập chỉ mục ứng dụng, v.v.Ứng dụng Android bắt đầu chậm - không có dex2oat Zip. Đã hủy - Gradle 2.10

Bây giờ, ứng dụng hoạt động như dự định nhưng mất rất nhiều thời gian. Nhật ký hiển thị nhiều thông báo như sau:

I/dex2oat: ---------------------------------------------------- 
I/dex2oat: <SS>: S T A R T I N G . . . 
I/dex2oat: <SS>: Zip is absent. Canceled. 
I/dex2oat: /system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm --instruction-set-features=div --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --dex-file=/data/data/world.b2g.b2gether/files/instant-run/dex/slice-com.google.android.gms-play-services-measurement-8.4.0_d76b40d326ea93493481fa158b18846c1c4627dd-classes.dex --oat-fd=29 --art-fd=-1 --oat-location=/data/data/world.b2g.b2gether/cache/slice-com.google.android.gms-play-services-measurement-8.4.0_d76b40d326ea93493481fa158b18846c1c4627dd-classes.dex --runtime-arg -Xms64m --runtime-arg -Xmx512m 
I/dex2oat: dex2oat took 288.616ms (threads: 4) 
I/dex2oat: ---------------------------------------------------- 
I/dex2oat: <SS>: S T A R T I N G . . . 
I/dex2oat: <SS>: Zip is absent. Canceled. 
I/dex2oat: /system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm --instruction-set-features=div --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --dex-file=/data/data/world.b2g.b2gether/files/instant-run/dex/slice-com.google.android.gms-play-services-maps-8.4.0_36e4d7c4ee371ae72ff4fba4383d7535cc7f3d3a-classes.dex --oat-fd=29 --art-fd=-1 --oat-location=/data/data/world.b2g.b2gether/cache/slice-com.google.android.gms-play-services-maps-8.4.0_36e4d7c4ee371ae72ff4fba4383d7535cc7f3d3a-classes.dex --runtime-arg -Xms64m --runtime-arg -Xmx512m 
I/dex2oat: dex2oat took 321.095ms (threads: 4) 
I/dex2oat: ---------------------------------------------------- 
I/dex2oat: <SS>: S T A R T I N G . . . 
I/dex2oat: <SS>: Zip is absent. Canceled. 
I/dex2oat: /system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm --instruction-set-features=div --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --dex-file=/data/data/world.b2g.b2gether/files/instant-run/dex/slice-com.google.android.gms-play-services-location-8.4.0_298f1e5056d6eea423c13052ef0c9136963ce27b-classes.dex --oat-fd=29 --art-fd=-1 --oat-location=/data/data/world.b2g.b2gether/cache/slice-com.google.android.gms-play-services-location-8.4.0_298f1e5056d6eea423c13052ef0c9136963ce27b-classes.dex --runtime-arg -Xms64m --runtime-arg -Xmx512m 
I/dex2oat: dex2oat took 298.720ms (threads: 4) 
I/dex2oat: ---------------------------------------------------- 
... 

Có vẻ như một số gói bị thiếu. Vì tôi không cần bất kỳ tính năng nào trong số các tính năng này (ngoại trừ bản đồ và GCM), tôi đã tắt các tùy chọn cho Analytics, Xác thực ... trong Android Studio. Tuy nhiên, những tin nhắn này vẫn xuất hiện.

Điều này có thể là do tôi áp dụng các dịch vụ trong tệp build.gradle không?

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile files('libs/greendao-2.1.0.jar') 
    compile project(':volley') 
    compile 'com.android.support:support-v13:23.3.0' 
    compile 'com.android.support:recyclerview-v7:23.3.0' 
    compile 'com.android.support:appcompat-v7:23.3.0' 
    compile 'com.google.android.gms:play-services-gcm:8.4.0' 
    compile 'com.google.android.gms:play-services-maps:8.4.0' 
    compile 'com.google.android.gms:play-services-location:8.4.0' 
} 

apply plugin: 'com.google.gms.google-services' 

Trong ứng dụng cấu hình gradle Tôi cũng đã viết

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.0.0' 
     classpath 'com.google.gms:google-services:2.0.0' 
    } 
} 

-------------------------- EDIT : --------------------------

Hóa ra nó có vẻ là lỗi gradle của

tôi bắt nguồn từ vấn đề một chút trở lại điểm khi tôi cập nhật Android Studio mới. Tại một thời điểm tôi phải chuyển từ Gradle 2.8 thành Gradle 2.10. Nếu tôi đổi nó thành Gradle 2.8 thì vấn đề này đã biến mất. Rất tiếc, Android Studio cho tôi biết tôi phải cập nhật lên 2,10 ngay bây giờ.

Vì vậy, tôi có thể làm gì?

----------------------- EDIT 07.June.2016: -------------- ---------

Dường như với bản cập nhật mới cho Android Studio 2.1.2 lỗi này là cố định (hoặc ít nhất là tôi không thấy thông báo này nữa)

+0

'biên dịch 'com.google.android.gms: play-services: 8.4.0'' Bạn gần như không bao giờ nên đưa toàn bộ thư viện dịch vụ phát, tại sao bạn lại làm điều đó? Bên cạnh đó bạn đã có vẻ bao gồm các thư viện một phần mà bạn cần –

+0

Nó đã được bao gồm theo cách đó trong dự án ví dụ từ Google. Tôi có thể kiểm tra lại. Vì vậy, tôi nên loại bỏ rằng từ classpath là tốt trong phụ thuộc gradle? classpath 'com.google.gms: google-services: 2.0.0-beta6' –

+1

Bạn cần tham chiếu trong classpath cũng như 'apply plugin', nhưng bạn không cần' compile 'com.google.android. gms: play-services: 8.4.0'', cũng tại sao bạn chỉnh sửa tệp json được tạo theo cách thủ công? –

Trả lời

11

Cuối cùng Tôi tìm thấy câu trả lời. Vấn đề đã thực sự Gradle. Nhưng không phải là phiên bản mới. Nhiều hơn nữa instand xây dựng.

Những gì tôi học được:

Vấn đề có vẻ là rằng với sự kích hoạt Run tức thì một số "lát" cho các khuôn khổ không thể được tìm thấy. Điều này cũng ảnh hưởng đến điện thoại khi chạy ứng dụng độc lập với trình biên dịch (ví dụ: bắt đầu nếu thông qua Ngăn ứng dụng). Có vẻ như các thư viện đã được biên soạn phải được tìm kiếm/liên kết/biên dịch lại. Lý do điều này xảy ra chỉ với Gradle 2.10 hoặc cao hơn không phải là phiên bản mà chỉ là Gradle 2.8 không hỗ trợ tính năng mới.

Giải pháp:

Còn bây giờ công việc tốt nhất xung quanh là tắt funcionality này:

Cài đặt/Xây dựng, thi công, triển khai/tức thì Run -> Enable Run tức thì để mã trao đổi nóng

>> CHỈNH SỬA: Vẫn cập nhật lên Android Studio 2.1 dường như không khắc phục được sự cố này với tôi.

enter image description here

+0

Chạy ngay lập tức với GCM và PS khiến thời gian khởi động của ứng dụng của tôi cũng rất chậm. :/ –

+0

Có lẽ bạn có thể xem nhật ký và xem bạn có gặp vấn đề tương tự với dex2oat như tôi đã làm hay không. Bạn sẽ không tìm thấy nó trong "ứng dụng được chọn" mặc dù vậy hãy xem bộ lọc chính xác. –

+0

Không. Trong trường hợp của tôi, nó treo trên một dòng lớn bắt đầu như 'I/InstantRun: Đường dẫn dex gia tăng là/...' Không có dòng đăng nhập đặc biệt nào trong hệ thống. –

-1

Tôi cũng chạy vào vấn đề này. Tốc độ tải của ứng dụng của tôi quá chậm. Tôi đã kiểm tra nhật ký bên dưới. Tôi/dex2oat: dex2oat mất 288.616ms Sau khi tôi bỏ chọn hộp tùy chọn mà người viết đề cập đến sự cố đã được giải quyết.

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