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)
'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 –
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' –
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? –