Не удалось разрешить тип при загрузке файла dll и создать instacne на .net 8 android.C#

Место общения программистов C#
Ответить
Anonymous
 Не удалось разрешить тип при загрузке файла dll и создать instacne на .net 8 android.

Сообщение Anonymous »

У меня есть файл dll (назовем его MyDll.dll) и его код следующим образом:
MyDll.csproj:

Код: Выделить всё


net8.0-android
enable
latest
29
x64
Com.Test.MyDll
Com.Test.MyDll


Код MyDll:

Код: Выделить всё

using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Android.App;
using Android.Content;
using static Android.App.ActivityManager;

namespace Com.Test.MyDll
{
public class MyDll
{
public MyDll() {}

public async Task MyFunc(CancellationToken token)
{
var memoryInfo = new MemoryInfo();
var am = (Application.Context.GetSystemService(Context.ActivityService) as ActivityManager)!;

am.GetMemoryInfo(memoryInfo);

/* Do other things... */
}
}
}
Я загружаю dll из внешнего хранилища Android и использую Activator.CreateInstance для создания экземпляра и пытаюсь вызвать «MyFunc».
Но произойдет ошибка и скажем

Код: Выделить всё

System.TypeLoadException: Could not load type of field 'Com.Test.MyDll.:_activityManager' (2) due to: Could not resolve type with token 01000013 from typeref (expected class 'Android.App.ActivityManager' in assembly 'Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065') assembly:Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065 type:Android.App.ActivityManager member:(null)
И что странно, это происходит только в Release.
Если я использую Debug для сборки и запуска, все будет работать нормально.
Кстати, у меня есть еще одна dll, и у нее та же проблема.
Но разница в том, что я использую пакет System.Net.HttpClient, а TargetFramework — .netstandard2.0.

Подробнее здесь: https://stackoverflow.com/questions/783 ... e-on-net-8
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»