Something recorded~~

Android Studio配置问题总结

1、aidl文件的配置 在Eclipse中建立aidl文件后,ADT会在gen文件夹下会自动生成一个.java文件,调用者可以直接引用;但是在Android Studio开发环境中,新建一个aidl文件,不自动生成.java文件,直接引用的话,会出现如下错误: Cannot resolve symbol 'IMyAidlInterface' 解决方法一: 在工程的Module目录下的src/main下新建一个aidl文件夹(只将aidl文件放入这个新建的aidl文件夹中,编译是不能通过的),并且在新建aidl文件夹下添加和AndroidManifest中相同包名的package,在这个package下面添加aidl文件。例如添加前的文件目录结构为: 添加完成后的文件目录结构为: 重新编译之后,就可以在app/build/generated/source/aidl/debug/下的package下面生成了相应的.java文件: 解决方法二: 如果你觉得层层创建目录很麻烦,则可以使用下面的方法。 将aidl文件放到你需要放置的路径下,如Module的package根目录src/main/java/package下: 然后在app的build.gradle中加入标识aidl源文件路径的属性aidl.srcDirs: android { compileSdkVersion 22 buildToolsVersion "21.1.2" /*相关代码*/ sourceSets { main { aidl.srcDirs = ['src/main/java'] }... Read more »

Gradle--多渠道依赖问题

前提 如果我们想用Gradle打出多渠道的包,需要在build.gradle脚本中加入代码: productFlavors { pro { packageName "com.androidtool.pro" } dev { } } 情景一 如果各个渠道包需要依赖的库都是一样的,非常好说,在dependencies中加入相应依赖库即可,如果需求是需要对每个渠道包配置不同的dependencies,就需要对不同的渠道包进行分别配置,对于前提中的例子来说,可以在build.gradle中添加如下代码: android { /*其它相关代码*/ productFlavors { pro { packageName "com.androidtool.pro" } dev { } } }... Read more »

ArcGIS Engine VC++中对象实例化方法

这是小时候博客里的迁移,可以不看~~ 1.在变量声明的同时直接使用CLSID进行构造 示例: ```c++ IPropertySetPtr ipPropertySet(CLSID_PropertySet); ipPropertySet->SetProperty(CComBSTR(L"DATABASE"),CComVariant(path)); 2.CoCreateInstance方法(ATL CComPtr 模板类成员 atlbase.h) 示例: CComPtr<IWorkspaceFactory> ipWorkspaceFactory; ipWorkspaceFactory.CoCreateInstance(CLSID_ShapefileWorkspaceFactory); 3.CreateInstance方法(COM interface pointer 模板类_com_ptr_t成员 comip.h) 示例: IFeatureLayerPtr ipFeatureLayer; HRESULT hr = ipFeatureLayer.CreateInstance(CLSID_FeatureLayer); 用下来感觉后两种方法比较灵活,可以在创建时再决定对象的具体类。我们可以将变量声明为抽象类或者接口,在实例化时再根据需要创建为特定的具体类。 Read more »

ArcGIS Engine VC++中选中鼠标单击处的元素并移动

这是小时候博客里的迁移,可以不看~~ IPointPtr pPnt(CLSID_Point); pPnt->PutCoords(mapX,mapY); IEnumElementPtr pEnumEle; IElementPtr pElement; IActiveViewPtr pActiveV = m_MapCtrl.get_ActiveView(); IGraphicsContainerPtr pGraCont = NULL; pActiveV->get_GraphicsContainer(&pGraCont); IGraphicsContainerSelectPtr pGraConSel = (IGraphicsContainerSelectPtr)pGraCont; pEnumEle = pGraCont->LocateElements(pPnt,10); //选中单击点10范围内的元素 if(pEnumEle != NULL) { IScreenDisplayPtr... Read more »