UnsatisfiedLinkError Arcgis 10.2.3 Android ArcGISRuntime.setClientId

时间:2014-08-06 08:41:52

标签: android arcgis unsatisfiedlinkerror

我遇到过Arcgis SDK for Android的问题,这是我之前从未有过的。 当我调用这个方法时,它的原生界面似乎是一个问题:

ArcGISRuntime.setClientId

我在onCreate()(应用程序类)中有这个方法,所以它在开头就崩溃了

这是堆栈跟踪:

java.lang.UnsatisfiedLinkError: nativeIsClientIdValid
at com.esri.core.runtime.LicenseImpl.nativeIsClientIdValid(Native Method)
at com.esri.core.runtime.LicenseImpl.b(Unknown Source)
at com.esri.android.runtime.ArcGISRuntime$License.b(Unknown Source)
at com.esri.android.runtime.ArcGISRuntime$License.a(Unknown Source)
at com.esri.android.runtime.ArcGISRuntime.setClientId(Unknown Source)
at com.pkg.manager.AppManager.onCreate(AppManager.java:262)

这就是我在Arcgis文档中找到的关于此方法的内容:

  

public static LicenseResult setClientId(String clientId)

许可应用程序的基本功能。这将删除开发人员模式中存在的水印,并且必须在已部署的应用程序中调用。无论何时访问标准许可功能,都将抛出RuntimeException。

在使用setLicense(LicenseInfo)setLicense(String)设置许可证之前,必须先调用此方法。请注意,如果在调用此方法之前访问任何标准许可功能,则在调用此方法并且应用程序将保持开发人员模式时将抛出异常。

参数

的clientId。要设置的客户端ID

返回

LicenseResult.Invalid或LicenseResult.Valid

https://developers.arcgis.com/android/api-reference/reference/com/esri/android/runtime/ArcGISRuntime.html

任何想法,谢谢!

2 个答案:

答案 0 :(得分:0)

UnsatisfiedLinkError通常意味着应用程序无法加载所需的本机库,即使该库的Java包装器存在也是如此。如果Java包装器也丢失了,那么你的代码就不会编译。

您是否在此项目中从早期版本的ArcGIS切换到ArcGIS 10.2.3?如果是这样,项目仍然可能具有来自旧版ArcGIS的本机库,即使该项目具有来自新版ArcGIS的Java库,它也没有setClientId方法。 ,有setClientId

假设您在Eclipse中,右键单击该项目并选择 ArcGIS Tools>修复项目属性。这应该用10.2.3本机库替换旧的本机库。

答案 1 :(得分:-1)

http://maroofi.github.io/ceal/用于从屏幕上删除水印