首先,我想参考我的“研究”。我是Android环境的新手,而不是Java,但我可以说我有时无法理解导致逻辑错误的概念。根据我的经验,我通常不必过多考虑设置,直接进入代码。这也是阻碍我的事情之一。
这就是说我现在遇到的错误可能是因为对Java或Android上的编译链接机制的基本误解。我想改变它。
这个问题主要是针对这个问题的解释,专注于学习足以更新这个文本,以便我能够恰当地解释实际上发生了什么,以及为什么我长期坚持这个问题。
具体来说,我正在使用演示应用程序在我的设备上进行测试,让应用程序“不幸的是,已停止”。我遵循了here概述的每个步骤,在前一个answer之后的每个案例中都有重复和差异,尤其是这个answer,这似乎描述了与我的非常相似的情景。
我可以使用快速修复,但我认为这个答案值得更好的解释。与此问题相关的解决方案似乎取决于用户在其环境中具有的确切内容/编译库的顺序/放置这些库的文件夹。因此,如果有人对这里究竟发生了什么有更深入的了解,我当然会欣赏可视化。
我可以共享我自己的代码文件(my_location_demo的副本)但我没有logcat,因为我正在导出到dropbox以在我自己的设备上进行测试。
更新
有没有人知道我是否需要在清单文件中声明我的库资源? Here它声明要声明所有外部库活动。我当前的清单文件包括以下内容:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyCvGBr5in13NK2yYBR7lhXTtnxj3mrXQy4"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
我正在研究logcat建议,虽然我没有root设备,也没有运行&lt; = 4.1但是我已经运行了一段时间,这不是那么困难。
更新2
现在我的演示应用程序正常运行,这就是我所做的: 1.处理新工作区。
2.导入Google Play服务lib(复制到工作区,因为我有2个驱动器,这仅在两个文件位于同一驱动器时才有效)
3.我注意到已添加了androi v4支持库。
4.相应地在清单上更改了API密钥(已经具有所有必要的权限)。
由于这是演示应用程序,它已经有一些设置我无法破译。我显然想将它应用到我自己的应用程序中。 我尝试重现相同的程序,我注意到文件图标(在eclipse文件资源管理器中名称的左侧)缺少图书馆的符号,与我以前成功的演示项目形成对比。
我通过Java构建路径库选项卡中的“添加JAR”引用了它。
使用这些选项,我的应用程序可以访问加载地图,但在显示任何内容之前会崩溃。
我在java构建路径库选项卡中通过“添加外部JAR”引用了google play,我没有到达地图,这让我“更远”了,所以我删除了它并得到了地图至少要“再次”加载。
更新3
在下一张图片中,我想指出在将演示应用(工作)与我的应用的两个版本进行比较时,我仍然可以找到的唯一区别。底部的红色矩形突出了我对具有android-support-v4.jar的工作项目的意思,左侧有一个库图标。下一个红色突出显示框显示我拥有的项目实例之一,其中显示的文件左侧没有相同的库图标。自下而上的最后两个红色框突出显示我尝试将该文件转换为库的方式,顶部红色框是我在对库进行引用时出现的新“文件”。
“似乎”工作的那个(获取地图控件,但不显示地图和崩溃)是顶级实例。
更新4
我已根据建议here将此行GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
添加到我的onCreate。这导致实际加载MAP(omg im so close)与控件。顶部系统托盘上的GPS图标闪烁(获取位置)并且网格上出现彩色地图,但在5-7秒后仍然会崩溃。
更新5
我可能已经完成了某些事情,但我想我只是浪费了我的时间。我在初始教程中添加了一个TextView(我不需要它)代码,现在一切正常(几乎没问题)。我猜我没有阅读足够多的Layouts来了解需要设置多少。我仍然有一些错误,但至少我可以看到地图,它正在ping我的位置。 再次,
非常感谢。