【问题标题】:Data Logic SDK Integration throws Java.Lang.NoClassDefFoundError数据逻辑 SDK 集成引发 Java.Lang.NoClassDefFoundError
【发布时间】: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 中的说明添加了&lt;uses-library android:name="com.datalogic.device" android:required="true" /&gt;
  • 就是这样!谢谢!我没有检查快速入门部分,只有教程一个......我希望我可以将其验证为答案,但这是一个评论,抱歉。

标签: android xamarin xamarin.forms xamarin.android


【解决方案1】:

请按照tutorial 中的说明将&lt;uses-library android:name="com.datalogic.device" android:required="true" /&gt; 添加到清单文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 2016-09-13
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多