【问题】
折腾:
期间,编译出现错误: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
去下载,得到:
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,三者之间的关系:
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
都导入到项目里面,应该就可以了:
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对应的另外一个子项目:
其中包含此处所需要的图片资源文件。
下载后解压,将其中的:
OsmAnd-resources-master\rendering_styles\style-icons
中的:drawable-hdpi
drawable-mdpi
drawable-xhdpi
drawable-xxhdpi
其下包含对应的这些缺少的图片资源,都导入到Android Studio中的项目即可。
注:
关于Android Studio中如何导入资源图片文件,可参考: