【问题】
折腾:
【记录】Android Studio中导入OsmAnd并编译
期间,编译出现错误:
E:\crifan\DevRoot\Osmand-master\OsmAnd\src\net\osmand\plus\helpers\WaypointHelper.java Error:(687, 56) 错误: 找不到符号 符号: 变量 mx_highway_speed_camera 位置: 类 drawable Error:(689, 56) 错误: 找不到符号 符号: 变量 mx_barrier_border_control 位置: 类 drawable Error:(703, 56) 错误: 找不到符号 符号: 变量 mx_barrier_toll_booth 位置: 类 drawable E:\crifan\DevRoot\Osmand-master\OsmAnd\src\net\osmand\plus\activities\MapActivityLayers.java Error:(307, 22) 错误: 找不到符号 符号: 变量 mx_user_defined 位置: 类 drawable E:\crifan\DevRoot\Osmand-master\OsmAnd\src\net\osmand\plus\views\RouteLayer.java Error:(131, 90) 错误: 找不到符号 符号: 变量 h_arrow 位置: 类 drawable E:\crifan\DevRoot\Osmand-master\OsmAnd\src\net\osmand\plus\activities\search\SearchPoiFilterFragment.java Error:(251, 38) 错误: 找不到符号 符号: 变量 mx_name_finder 位置: 类 drawable Error:(253, 38) 错误: 找不到符号 符号: 变量 mx_user_defined 位置: 类 drawable 注: 某些输入文件使用或覆盖了已过时的 API。 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。 注: 某些输入文件使用了未经检查或不安全的操作。 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。 7 个错误 Error:Execution failed for task ':OsmAnd:compileFreeLegacyArmv5DebugJava'. > Compilation failed; see the compiler error output for details. Information:BUILD FAILED Information:Total time: 20.111 secs Information:8 errors Information:0 warnings Information:See complete output in console
Message为:
然后尝试去解决:
4.google中搜:
mx_highway_speed_camera
找到:
->
->
osmandapp/OsmAnd-resources · GitHub
https://github.com/osmandapp/OsmAnd-resources
去下载,得到:
OsmAnd-resources-master.zip
然后对于这个项目,代码看起来也不是project:
感觉没法导入为项目。
现在去搞清楚如何加入到原先的osmAnd的项目中去。
5.先去试试import module:
结果不是module,无法导入。
6.后来参考:
找到上述缺少的文件是在:
rendering_styles/style-icons/drawable-xxhdpi
所以去找找,果然在其中发现了:mx_highway_speed_camera
那算了,干脆就只是把上述的
rendering_styles/style-icons/
中所有的资源文件:
都导入到对应的项目中,不过却发现项目中却没有这几个dpi的分级的文件夹:
7.在将某个分辨率的,比如xxhdpi中的对应缺少的这7个png图片:
加入到项目中之前,
还是先去研究研究,到底这里的:
OsmAnd和OsmAnd-resources
两个项目到底啥关系,以及后来发现的osmandapp,三者之间的关系:
【整理】OsmAnd+OsmAnd-resources+osmandapp的关系
8.算了,还是自己手动先把:
\OsmAnd-resources-master\rendering_styles\style-icons\drawable-xxhdpi
中的对应缺少的7个图片:
mx_highway_speed_camera
mx_barrier_border_control
mx_barrier_toll_booth
mx_user_defined
h_arrow
mx_name_finder
mx_user_defined
都拷贝到项目中的对应位置drawable目录下吧。
本来打算拷贝路径的,结果拷贝出来是4个路径:
E:\crifan\DevRoot\Osmand-master\OsmAnd\res\layout-large
E:\crifan\DevRoot\Osmand-master\OsmAnd\res\layout-v14
E:\crifan\DevRoot\Osmand-master\OsmAnd\res\layout-land
E:\crifan\DevRoot\Osmand-master\OsmAnd\res\layout
9.然后再去折腾后发现:
Android Studio中,也是有对应的xxhdip等不同的分辨率的图片的。
需要将视图换位Packages,即可看到:
或者换成是:Project也可以看清楚:
所以,这就很明确了:
直接去
OsmAnd-resources-master\rendering_styles\style-icons
把几种不同分辨率的图片:
drawable-hdpi
drawable-mdpi
drawable-xhdpi
drawable-xxhdpi
都导入到项目里面,应该就可以了:
【已解决】Android Studio中导入png图片资源文件
10.导入完毕资源文件后,然后再去编译一下:
结果就可以编译成功了:
【总结】
此处下载OsmAnd并导入到Android Studio中后编译出错,缺少:
- mx_highway_speed_camera
- mx_barrier_border_control
- mx_barrier_toll_booth
- mx_user_defined
- h_arrow
- mx_name_finder
- mx_user_defined
这7张图片,即resource。
解决办法是:
找到OsmAnd对应的另外一个子项目:
https://github.com/osmandapp/OsmAnd-resources
其中包含此处所需要的图片资源文件。
下载后解压,将其中的:
OsmAnd-resources-master\rendering_styles\style-icons
中的:
- drawable-hdpi
- drawable-mdpi
- drawable-xhdpi
- drawable-xxhdpi
其下包含对应的这些缺少的图片资源,都导入到Android Studio中的项目即可。
注:
关于Android Studio中如何导入资源图片文件,可参考:
【已解决】Android Studio中导入png图片资源文件
转载请注明:在路上 » 【已解决】Android Studio中编译Osmand出错:Error找不到符号变量mx_highway_speed_camera