项目基于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的许可就好了,我也不理解为什么要使用它,也不必究根问底。
完整的:
//初始化ae
EngineInitializer.initializeVisualBeans();
// 设置使用的arcgis产品和版本,使ao能运行在不同的arcgis环境下
VersionManager versionManager = new VersionManager();
// 第一个参数是arcgis产品编号:1=desktop,2=engine,5=server
// 此参数可以通过枚举查看esriProductCode
boolean 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. |