首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin.Android -SDK和用户程序集链接删除第三方dll中的属性

Xamarin.Android -SDK和用户程序集链接删除第三方dll中的属性
EN

Stack Overflow用户
提问于 2017-02-24 17:41:40
回答 1查看 853关注 0票数 1

我对android链接器有一个奇怪的行为。我正在使用来自Syncfusion的调度工具。我补充说,这是所有的三个dlls

Syncfusion.SfSchedule.XForms;Syncfusion.SfSchedule.XForms.Android;Syncfusion.SfSchedule.Android;

当我使用"SDK和用户程序集“时,作为跳过的链接程序集。

但是,此dll的一个属性正在引发异常,如下所示。显然,链接器删除了一个名为IsYearlySpecific的属性。我不知道为什么,但我创建了新的项目,并尝试了相同的代码,它只是工作良好。无论我尝试什么,我都不能在一个新的项目中复制。

我的原始项目与其他几个软件包相当大。如果有人能给出建议,我应该在这里做什么而不重新创建整个项目。我尝试过很多次清洁重建方案。删除了XF项目和下的obj和bin文件夹。我也在另一台机器上尝试过这个项目。

我联系了他们的支持,但他们也无法复制,需要一个样本项目。因为我不能在一个新的项目复制,我不能分享我的整个原始项目的源代码。请给我一些建议,如果有任何其他缓存或诸如此类的,我可以清理东西。

代码语言:javascript
复制
{Java.Lang.NoSuchFieldError: no "Z" field "IsYearlySpecific" in class "Lcom/syncfusion/schedule/RecurrenceProperties;" or its superclasses
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/4009/f3074d2c/source/mono/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 
  at Java.Interop.JniEnvironment+InstanceFields.GetFieldID (Java.Interop.JniObjectReference type, System.String name, System.String signature) [0x00068] in /Users/builder/data/lanes/4009/9578cdcd/source/Java.Interop/src/Java.Interop/Java.Interop/JniEnvironment.g.cs:10972 
  at Android.Runtime.JNIEnv.GetFieldID (System.IntPtr jclass, System.String name, System.String sig) [0x00000] in /Users/builder/data/lanes/4009/9578cdcd/source/monodroid/src/Mono.Android/JNIEnv.g.cs:456 
  at Com.Syncfusion.Schedule.RecurrenceProperties.set_IsYearlySpecific (System.Boolean value) [0x00016] in <e63d7911148e4f5c8433fa067a7eae25>:0 
  at Syncfusion.SfSchedule.XForms.Droid.RecurrenceBuilder_Android.Syncfusion.SfSchedule.XForms.IRecurrenceBuilder.RRuleGenerator (Syncfusion.SfSchedule.XForms.RecurrenceProperties formRecurrenceProperties, System.DateTime startTime, System.DateTime endTime) [0x000cd] in <9625327b1ffb4afb82c0a45d09128902>:0 
  at myapp.Pages.ScheduleSamplePage.get_Title () [0x0010c] in C:\Git\myapp\myapp\myapp\Pages\ScheduleSamplePage.cs:48 
  --- End of managed Java.Lang.NoSuchFieldError stack trace ---
java.lang.NoSuchFieldError: no "Z" field "IsYearlySpecific" in class "Lcom/syncfusion/schedule/RecurrenceProperties;" or its superclasses
    at md5874faab2802fcbafca06095cc637d65d.MainActivity.n_onCreate(Native Method)
    at md5874faab2802fcbafca06095cc637d65d.MainActivity.onCreate(MainActivity.java:32)
    at android.app.Activity.performCreate(Activity.java:6285)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524)
    at android.app.ActivityThread.access$900(ActivityThread.java:154)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:234)
    at android.app.ActivityThread.main(ActivityThread.java:5526)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-25 01:01:24

{ "Lcom/syncfusion/schedule/RecurrenceProperties;“或其超类中没有"Z”字段"IsYearlySpecific“

Java名称将是小写的,因此从错误中,我会将以下内容添加到一个配置文件中,该配置文件被分配为ProguardConfiguration构建类型

代码语言:javascript
复制
-keep class com.syncfusion.** { *; }
-keep class * extends com.syncfusion.** { *; }

注意:请确保您添加的proguard文件不是Unicode文本文件(U+FEFF字节顺序标记),因为proguard将失败.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42445003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档