我遇到过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
任何想法,谢谢!
答案 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/用于从屏幕上删除水印