Я новичок в Xamarin Forms, и я пытаюсь создать простое приложение, которое сканировать штрих-код использует Datalogic Sdk. В этом примере они использовали собственный Xamarin для Android, и когда я его запускаю, все работает. Но когда я пытаюсь сделать это в пользовательском приложении Xamarin Forms
namespace my_project.Droid
{
[Activity(Label = "my_project", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity, IReadListener
{
public event EventHandler<ScanEventArgs> OnScan;
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
public void OnRead(IDecodeResult p0)
{
Console.WriteLine(p0.BarcodeID);
Console.WriteLine(p0.Text);
}
}
}
он вылетает с этим сообщением:
Java.Lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.companyname/md5eedca812c943a42a1dd347cfedc77c45.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "md5eedca812c943a42a1dd347cfedc77c45.MainActivity" on path: DexPathList[[zip file "/data/app/com.companyname-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.companyname-1, /vendor/lib, /system/lib]]
Я думал, что это была причина Activity, реализующей интерфейс, поэтому я пытаюсь отделить слушателя от действия, как в этом пример
public class ReadListener : Java.Lang.Object, IReadListener
{
public void OnRead(IDecodeResult decodeResult)
{
Log.Debug("", "Text: " + decodeResult.Text + " barcodeID " + decodeResult.BarcodeID);
}
}
Если у кого-то есть идеи о том, как решить одно из этого исключения или просто другой способ интеграции этого SDK в приложение Xamarin Forms?
Спасибо.
если да, то посетите stackoverflow.com/questions/39081925/…
Внесены необходимые изменения в ваш вопрос, потому что сейчас ответ на ваш вопрос вводит в заблуждение.Я предлагаю вам также добавить трассировку стека, так как это может помочь понять и определить проблему.
Вы добавили <uses-library android:name = "com.datalogic.device" android:required = "true" />, как сказано в руководство?
Вот это было! Спасибо! Я не проверял часть быстрого запуска, только учебник ... Хотел бы я подтвердить это как ответ, но это комментарий, извините.
@vmagrez Я отвечу на ответ, помогите, пожалуйста, отметить это.
Пожалуйста, добавьте <uses-library android:name = "com.datalogic.device" android:required = "true" /> в файл манифеста, как указано в руководство.
вы делаете какой-либо ввод вручную в файл манифеста?