2012-04-18 21 views
6

Tôi có hai điện thoại Galaxy Nexus. Các điện thoại này có cùng phiên bản firmware 4.0.2, cùng số bản dựng, cùng phiên bản hạt nhân. Khi tôi triển khai cùng một ứng dụng chính xác cho cả hai điện thoại sử dụng Eclipse, tôi thấy các hành vi khác nhau từ mỗi ứng dụng.Thất bại khi nhìn lên cửa sổ - các hành vi khác nhau từ cùng một ứng dụng trên 2 thiên hà nexus

Trên một điện thoại, mọi thứ hoạt động như mong đợi. Trên điện thoại kia, Hoạt động chính gặp sự cố khi chuyển sang hoạt động khác và quay lại hoạt động chính, cả nút quay lại và các hoạt động khác đều kết thúc và quay lại hoạt động đã tạo hoạt động đó. Các đầu mối duy nhất tôi có vấn đề này là lỗi này:

04-18 17:43:30.811: I/ActivityManager(207): Displayed org.mitre.Mobile/.Activities.QueryActivity: +430ms 
04-18 17:43:30.819: I/n*.w*.w*.ZoomButtonsCo*(4962): invoke: onVisibilityChanged listener: [email protected] 
04-18 17:43:30.843: E/InputQueue-JNI(4962): channel '41d66628 Panel:org.mitre.Mobile/org.mitre.Mobile.Activities.MobileActivity (client)' ~ Publisher closed input channel or an error occurred. events=0x8 
04-18 17:43:30.843: W/WindowManager(207): Force-removing child win Window{41d66628 Panel:org.mitre.Mobile/org.mitre.Mobile.Activities.MobileActivity paused=false} from container Window{420815c8 org.mitre.Mobile/org.mitre.Mobile.Activities.MobileActivity paused=false} 
04-18 17:43:30.850: W/WindowManager(207): Failed looking up window 
04-18 17:43:30.850: W/WindowManager(207): java.lang.IllegalArgumentException: Requested window [email protected] does not exist 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7029) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7020) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.WindowManagerService.removeWindow(WindowManagerService.java:2180) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.Session.remove(Session.java:149) 
04-18 17:43:30.850: W/WindowManager(207): at android.view.IWindowSession$Stub.onTransact(IWindowSession.java:124) 
04-18 17:43:30.850: W/WindowManager(207): at com.android.server.wm.Session.onTransact(Session.java:111) 
04-18 17:43:30.850: W/WindowManager(207): at android.os.Binder.execTransact(Binder.java:338) 
04-18 17:43:30.850: W/WindowManager(207): at dalvik.system.NativeStart.run(Native Method) 

Tôi chưa thực sự tìm thấy bất kỳ điều gì hữu ích trên internet liên quan đến thông báo lỗi này. Tôi có một số kinh nghiệm với android, nhưng điều này đã thực sự stumped tôi. Ban đầu tôi nghĩ đây là một vấn đề phóng nova (điện thoại có vấn đề), nhưng tôi đã cài đặt nova trên điện thoại kia và vẫn thấy những hành vi tương tự.

Điện thoại có ứng dụng không hoạt động đúng cách là điện thoại cá nhân của tôi, điện thoại kia là điện thoại công việc.

+0

Hoạt động chính hoạt động chính là gì? – CommonsWare

+0

Tôi thực hiện cùng một hoạt động trên cả hai điện thoại, không có gì khác thường, vẽ một ứng dụng bản đồ và truy vấn dữ liệu trên một khu vực được chỉ định. – ejo4041

+0

có lẽ bạn có một tùy chỉnh khác trên điện thoại chứ không chỉ là trình khởi chạy nova, để kiểm tra điều này, bạn sẽ phải đặt lại điện thoại về trạng thái mặc định của khóa học. – Raykud

Trả lời

0

Chỉ cần tìm hiểu lý do tại sao mọi hoạt động đều chết. Trong Cài đặt> Tùy chọn nhà phát triển, có một hộp kiểm được gọi là "Không giữ hoạt động" "Phá hủy mọi hoạt động ngay sau khi người dùng rời khỏi nó". Hộp đã được chọn. Tôi chỉ cần bỏ chọn nó. Điều đó giải thích mọi thứ.

+1

Điều này sẽ đặt câu hỏi về lợi ích của tùy chọn nhà phát triển đó là gì. Tắt nó đi có nghĩa là một số trường hợp mà hoạt động có thể bị giết (thấp trên bộ nhớ) vẫn chưa được kiểm tra và do đó bị mất tích. –

+9

@AndrewS - điều quan trọng đối với ứng dụng của bạn là mạnh mẽ trong điều kiện bộ nhớ thấp. Việc kích hoạt tùy chọn đó mô phỏng việc dọn dẹp tích cực bởi hệ điều hành. – Mark

+1

Vâng, đó là một cài đặt rất hữu ích. Nó đảm bảo rằng các hoạt động của bạn không phụ thuộc lẫn nhau. Không bao giờ giả định hoạt động bên dưới một hoạt động khác là còn sống. Đừng dựa vào các đối tượng bộ nhớ để tiếp tục các trạng thái. Lưu dữ liệu trên lưu trữ vĩnh viễn và trạng thái giao diện người dùng trong các gói. – tdevaux

1

Sự cố đã xảy ra với tôi sau khi chuyển đổi các biến thể xây dựng. Một cái gì đó có thể sai lầm với xây dựng của bạn. Hãy thử khởi động lại Android Studio, làm sạch và xây dựng lại. Điều đó giải quyết vấn đề cho tôi.

Chúc may mắn!