2012-05-11 18 views
5

tôi đang tạo ra một Mono tươi cho các ứng dụng Android bằng http://xamarin.com/monoforandroid enter image description heredlls Prexisiting (NET 4 khung) vấn đề với mono cho android

tôi chọn Mono cho ứng dụng Android sử dụng Visual C# tùy chọn.

phiên bản đích Android của tôi là: enter image description here

tôi đến tài liệu tham khảo của dự án và cố gắng thêm dlls tiền hiện có của tôi (thực hiện trong .NET 4 Framework) và tôi đã nhận lỗi này:

enter image description here

Công cụ lạ là không có tùy chọn để thay đổi Khuôn khổ .NET từ thuộc tính dự án. Bạn có thể cho tôi biết những gì tôi đang thiếu?

Trả lời

5

Các vấn đề ở đây là bạn đang cố gắng tham khảo một .NET 4 DLL từ một dự án mà không phải là .NET 4. Mono cho Android sử dụng hồ sơ riêng của mình cho .NET, rất giống với Silverlight (nhưng không chính xác tương tự). Mặc dù có thể thêm DLL được biên dịch cho một tiểu sử khác sẽ hoạt động nhưng rất nguy hiểm vì có thể bạn sẽ gặp phải sự cố khi chạy ứng dụng, do thiếu thứ gì đó từ cấu hình Mono dành cho Android.

Câu trả lời hay nhất hiện nay là tạo thư viện Mono cho Android, liên kết trong các tệp thích hợp từ thư viện bạn muốn sử dụng và tham chiếu. Điều này sẽ cung cấp cho bạn kiểm tra thời gian biên dịch mà bạn không sử dụng bất kỳ thứ gì không được hỗ trợ bởi hồ sơ Mono dành cho Android và giúp bạn luôn khỏe mạnh hơn trong thời gian dài. Tôi có một blog cũ post up here nói về cách liên kết tệp giữa các dự án.

Điều đó nói rằng, trong trường hợp này bạn may mắn vì ai đó đã thực hiện phần cuối cùng cho bạn! Hãy xem this fork of Json.NET cung cấp các phiên bản cho MonoTouch và Mono cho Android.

+0

Thậm chí nếu tôi cố gắng sử dụng các tệp nguồn (của các dll trước đây của tôi), làm cách nào tôi có thể làm vì các tệp đó sử dụng các tính năng .NET 4 Framework. Làm cách nào để tôi có thể sử dụng các tệp nguồn đó trong dự án thư viện lớp Mono cho Android? –

+0

Giả sử tôi có lớp học công khai Class1 { động tĩnh tĩnh A {get; bộ; } }. Làm cách nào để sử dụng từ khóa động tại đây mà không có phiên bản .NET 4? –

+0

Hỗ trợ động đã được thêm vào trong phiên bản alpha hiện tại của Mono cho Android: http://docs.xamarin.com/android/Releases/Mono_For_Android_4/Mono_for_Android_4.1.0#Dynamic_support –

2

The strange stuff is there is no option to change the .NET Framework from project properties. Can you tell me what I am missing?

Nó không phải đặc biệt lạ - đó hộp thoại đã được viết bởi Microsoft, với các loại dự án riêng của mình trong tâm trí. Có vẻ như Mono dành cho Android không có các tùy chọn tương tự.

Tôi thật sự nghi ngờ bạn sẽ chỉ phải sử dụng phiên bản nhắm mục tiêu JSON.NET .NET 3.5.

(Có nói rằng, Mono cho Android tuyên bố hỗ trợ "tính năng ngôn ngữ năng động", mà âm thanh như nó nên được nhắm mục tiêu NET 4. Odd. Tôi cho rằng việc sửa chữa là như nhau mặc dù.)

+0

Jon, Bạn có thể cho tôi một số gợi ý về cách thay đổi khung mục tiêu cho mono cho dự án Android không? Vì tôi có nhiều dll được nhắm mục tiêu đến .NET 4 –

+0

@RockySingh: Tôi nghi ngờ nếu không có tùy chọn, sau đó nó không thể được thực hiện - tại một đoán. Tất nhiên, bạn có thể thấy rằng phiên bản Mono dành cho Android hỗ trợ nó cũng hỗ trợ nó. –

+0

Bạn có thể đặt tệp nguồn ở vị trí được chia sẻ. Sau đó tạo một tệp DLL Android và kéo nguồn vào dự án. MonoDevelop sẽ hỏi bạn cách quản lý tệp, chọn liên kết tệp với dự án. Bằng cách này, bạn có thể sử dụng lại các nguồn với các cấu hình xây dựng khác nhau (ví dụ: một cấu hình khác có thể dành cho Silverlight hoặc MonoTouch). – gsscoder

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