2015-06-18 15 views
6

Sau khi nhập QtQuick.Controls 1.2 và sử dụng thành phần StackedWidget, bây giờ tôi gặp lỗi khi triển khai lên Android như bên dưới. Tệp bị thiếu AnimationDrawable.qml không bị thiếu trong thư mục xây dựng Android nên tôi không hiểu tại sao nó không được đóng gói với APK.Không tìm thấy kết quả tìm kiếm trong Android sau khi thêm QtQuick Controls

Nó triển khai tốt khi tôi xóa nhập QtQuick.Controls và thay thế StackView bằng thứ khác.

Phiên bản Qt của tôi là 5.4.2.

Tôi đã thử triển khai nó với Qt 5.3.2 và hoạt động như mong đợi.

E/Qt  (12767): Can't create main activity 
 
E/Qt  (12767): java.io.FileNotFoundException: --Added-by-androiddeployqt--/qml/QtQuick/Controls/Styles/Android/drawables/AnimationDrawable.qml 
 
E/Qt  (12767): \t at android.content.res.AssetManager.openAsset(Native Method) 
 
E/Qt  (12767): \t at android.content.res.AssetManager.open(AssetManager.java:313) 
 
E/Qt  (12767): \t at android.content.res.AssetManager.open(AssetManager.java:287) 
 
E/Qt  (12767): \t at org.qtproject.qt5.android.bindings.QtActivity.copyAsset(QtActivity.java:394) 
 
E/Qt  (12767): \t at org.qtproject.qt5.android.bindings.QtActivity.extractBundledPluginsAndImports(QtActivity.java:503) 
 
E/Qt  (12767): \t at org.qtproject.qt5.android.bindings.QtActivity.startApp(QtActivity.java:582) 
 
E/Qt  (12767): \t at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:895) 
 
E/Qt  (12767): \t at android.app.Activity.performCreate(Activity.java:5990) 
 
E/Qt  (12767): \t at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
 
E/Qt  (12767): \t at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
 
E/Qt  (12767): \t at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
 
E/Qt  (12767): \t at android.app.ActivityThread.access$800(ActivityThread.java:151) 
 
E/Qt  (12767): \t at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
 
E/Qt  (12767): \t at android.os.Handler.dispatchMessage(Handler.java:102) 
 
E/Qt  (12767): \t at android.os.Looper.loop(Looper.java:135) 
 
E/Qt  (12767): \t at android.app.ActivityThread.main(ActivityThread.java:5254) 
 
E/Qt  (12767): \t at java.lang.reflect.Method.invoke(Native Method) 
 
E/Qt  (12767): \t at java.lang.reflect.Method.invoke(Method.java:372) 
 
E/Qt  (12767): \t at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
 
E/Qt  (12767): \t at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

+1

Nếu bạn đang ở trên cửa sổ, tôi đoán: đường dẫn quá dài (> 256 ký tự là một vấn đề thực sự đối với cửa sổ). Điều này chỉ xảy ra khi nhập QtQuick vì sau đó thư mục Styles sẽ được triển khai. Hãy thử cài đặt Qt ở mức cao nhất có thể trên hệ thống của bạn để làm cho đường dẫn ngắn hơn. Nên làm vậy! – qCring

+0

@qCring: Qt được cài đặt trong C:/Qt/*, nhưng dự án là loại đường dẫn sâu. Có thể gây ra hành vi tương tự? Và tôi chỉ xác minh nó hoạt động trên Qt 5.3.2 – Phat

+1

Vâng, tôi đoán điều tương tự cũng áp dụng cho đường dẫn đích. Tôi sẽ cho nó thử! – qCring

Trả lời

8

Khi triển khai ứng dụng, androiddeployqt sẽ copy một loạt các files mà khủng khiếp không thành công trên Windows khi nguồn hoặc đích con đường trở thành dài hơn 260 ký tự (yeah, đó là một "known feature"). Việc cài đặt Qt và thư mục dự án ở mức cao nhất có thể giúp giảm độ dài đường dẫn và giải quyết vấn đề. Và đó là cơ bản nó!

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