MyDll.csproj:
Код: Выделить всё
net8.0-android
enable
latest
29
x64
Com.Test.MyDll
Com.Test.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... */
}
}
}
Но произойдет ошибка и скажем
Код: Выделить всё
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)
Если я использую Debug для сборки и запуска, все будет работать нормально.
Кстати, у меня есть еще одна dll, и у нее та же проблема.
Но разница в том, что я использую пакет System.Net.HttpClient, а TargetFramework — .netstandard2.0.
Подробнее здесь: https://stackoverflow.com/questions/783 ... e-on-net-8
Мобильная версия