项目基于ArcObject 10.2.2 for java 开发,现在要升级到 ArcObject 10.7.1,在调试时出现0x80040228的许可错误。
10.2.2的授权方式
licenseStatus = mAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
解决方式:
licenseStatus = mAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcServer);
把它改成ArcServer的许可就好了,我也不理解为什么要使用它,也不必究根问底。
完整的:
//初始化aeEngineInitializer.initializeVisualBeans();// 设置使用的arcgis产品和版本,使ao能运行在不同的arcgis环境下VersionManager versionManager = new VersionManager();// 第一个参数是arcgis产品编号:1=desktop,2=engine,5=server// 此参数可以通过枚举查看esriProductCodeboolean s = versionManager.loadVersion(1, "10.7");aoInit = new AoInitialize();//arcgis10.4以上的用esriLicenseProductCodeArcServer的初始化方式。实际无需装arcserver,只装desktop即可int licenseStatus = aoInit.initialize(esriLicenseProductCode.esriLicenseProductCodeArcServer);System.out.println("arcgis licenseStatus: "+licenseStatus);return aoInit;
Esri License Status Codes.
Constant | Value | Description |
---|---|---|
esriLicenseAvailable | 10 | The Product/Extension is licensed and available. |
esriLicenseNotLicensed | 20 | This Product/Extension is not licensed. |
esriLicenseUnavailable | 30 | The Product/Extension is licensed but unavailable. |
esriLicenseFailure | 40 | There has been a licensing Failure. |
esriLicenseAlreadyInitialized | 50 | The Product license has already been initialized. Initialization can only be performed once. |
esriLicenseNotInitialized | 60 | The Product license has not been initialized. |
esriLicenseCheckedOut | 70 | The Product/Extension has been checked out successfully. |
esriLicenseCheckedIn | 80 | The Product/Extension has been checked in successfully. |
esriLicenseUntrusted | 90 | The Product/Extension license is untrusted and needs to be repaired. |
https://www.cnblogs.com/liweis/p/8675903.html