2015-08-19 23 views
5

tôi có một dự án đang chạy tốt trên Android và WinPhone 8. Khi tôi cố gắng để chạy trên iOS, tôi đã nhận được lỗi sauMvvmlight và Xamarin.iOS không thể tìm thấy mặc định ctor

Microsoft. Practices.ServiceLocation.ActivationException: không thể đăng ký: không có constructor nào được tìm thấy trong x

nơi x là bất cứ điều gì SimpleIoc.Default.Register<T, TU>(); dòng lượt truy cập đầu tiên. Tôi đã di chuyển mã xung quanh (như được đề xuất ở nơi khác) để đảm bảo tất cả các cuộc gọi SimpleIoc cụ thể trên nền tảng được thực hiện trong ViewModelLocator.

Tôi đã thêm ctors mặc định công khai trong các lớp đang phàn nàn về lỗi (mặc dù tôi đã đặt PreferredConstructor thành bản gốc chứ không phải ctor công khai mới được thêm).

Tôi có cảm giác rằng lỗi này là dương tính giả (cái gì khác không thành công, nhưng chỉ vào mã đó).

Sử dụng Xam.iOS qua máy chủ xây dựng (mã đến từ VS2015). Xcode đang chạy trình giả lập 8.3 (có thể cần cập nhật để cho phép thử nghiệm 8.4)

Trả lời

2

Có thể Linker đang tối ưu hóa hàm tạo, nếu nó cho rằng nó không được sử dụng. Hãy thử thiết lập các tùy chọn Linker thành "Don't Link" và xem nó có thực hiện lại không, hoặc thậm chí tạo mới một thể hiện của lớp ở nơi khác để Linker biết rằng hàm tạo được sử dụng. Bạn không nhất thiết muốn để nó theo cách đó, nhưng nếu nó loại bỏ lỗi, bạn sẽ ít nhất biết lý do.

+1

Thêm thuộc tính [Preserve] vào hàm tạo mặc định để ngăn trình liên kết tối ưu hóa nó đang chờ. – Softlion

+0

@Steve Morgan, Đã thử các tùy chọn trình liên kết đến "Không liên kết" vẫn đang bị lỗi. Tôi đang cố gắng chạy phân phối iPhone trên iPhone của tôi Tôi đang tải lên ipa của mình trên cửa hàng ứng dụng và sử dụng Kiểm tra chuyến bay tải xuống ipa và cố gắng chạy ứng dụng bị lỗi ngay lập tức ... Nếu tôi Chạy ứng dụng của mình trên trình mô phỏng, nó chỉ hoạt động tốt để phân phối xây dựng nó gây ra sự cố này Mọi đề xuất sẽ được chiếm đoạt. – Sanket

0

Các [Preserve] thuộc tính đã làm các trick cho tôi. Xây dựng trang trí với nó và giữ các thiết lập liên kết của bạn.

Thuộc tính này là một phần của không gian tên Microsoft.WindowsAzure.MobileServices.

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