【发布时间】:2019-10-18 07:13:03
【问题描述】:
我是 Xamarin Forms 的新手,我正在尝试使用 Datalogic Sdk 制作一个扫描条形码的简单应用。在示例中,他们使用 Xamarin native for 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 的原因,所以我尝试将侦听器与动作分开,就像 example 中一样
public class ReadListener : Java.Lang.Object, IReadListener
{
public void OnRead(IDecodeResult decodeResult)
{
Log.Debug("", "Text: " + decodeResult.Text + " barcodeID " + decodeResult.BarcodeID);
}
}
如果有人对如何解决此异常或只是将此 SDK 集成到 Xamarin Forms 应用程序中的另一种方法有一些想法?
谢谢。
【问题讨论】:
-
您是否在清单文件中进行任何手动输入?
-
已对您的问题进行了必要的更改,因为现在回答您的问题有点误导我建议您也放置堆栈跟踪,因为这可能有助于理解和查明问题
-
您是否按照tutorial 中的说明添加了
<uses-library android:name="com.datalogic.device" android:required="true" />? -
就是这样!谢谢!我没有检查快速入门部分,只有教程一个......我希望我可以将其验证为答案,但这是一个评论,抱歉。
标签: android xamarin xamarin.forms xamarin.android