我正在测试新的Android版谷歌地图API V2,当应用程序启动时,我收到了以下信息:
这是在4.1模拟器上运行的。
这是我的AndroidManifest。xml
文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.maptest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<permission
android:name="com.example.maptest.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.INTERNET"/>
<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"/>
<!-- Require OpenGL ES version 2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="##myapikey##"/>
</application>
</manifest>
文件main活动。爪哇:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
文件activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"/>
</RelativeLayout>
单击"Update"会使应用程序崩溃,并显示以下stackTrace:
E/Trace(1034): error opening trace file: No such file or directory (2)
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
W/GooglePlayServicesUtil(1034): Google Play services out of date. Requires 2010100 but found 1
D/gralloc_goldfish(1034): Emulator without GPU emulation detected.
D/AndroidRuntime(1034): Shutting down VM
W/dalvikvm(1034): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
E/AndroidRuntime(1034): FATAL EXCEPTION: main
E/AndroidRuntime(1034): android.content.ActivityNotFoundException: No Activity found to handle Intent
{ act=android.intent.action.VIEW dat=http://play.google.com/store/apps/details? \
id=com.google.android.apps.bazaar flg=0x80000 pkg=com.android.vending }
E/AndroidRuntime(1034): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545)
E/AndroidRuntime(1034): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)
E/AndroidRuntime(1034): at android.app.Activity.startActivityForResult(Activity.java:3351)
E/AndroidRuntime(1034): at android.app.Activity.startActivityForResult(Activity.java:3312)
E/AndroidRuntime(1034): at android.app.Activity.startActivity(Activity.java:3522)
E/AndroidRuntime(1034): at android.app.Activity.startActivity(Activity.java:3490)
E/AndroidRuntime(1034): at com.google.android.gms.internal.c$2.onClick(Unknown Source)
E/AndroidRuntime(1034): at android.view.View.performClick(View.java:4084)
E/AndroidRuntime(1034): at android.view.View$PerformClick.run(View.java:16966)
E/AndroidRuntime(1034): at android.os.Handler.handleCallback(Handler.java:615)
E/AndroidRuntime(1034): at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(1034): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(1034): at android.app.ActivityThread.main(ActivityThread.java:4745)
E/AndroidRuntime(1034): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(1034): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(1034): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
E/AndroidRuntime(1034): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime(1034): at dalvik.system.NativeStart.main(Native Method)
我还提到了Google Play服务项目。我做错了什么?
更新
Google issue tracker中相应的bug(https://issuetracker.google.com/issues/35822258)一段时间前就解决了。
现在,您可以在模拟器中使用谷歌地图Android应用编程接口,并创建具有播放服务的虚拟设备,如以下答案所述:
https://stackoverflow.com/a/46246782/5140781
我花了大约一天的时间在Android emulator上配置新的GMAPSAPI(谷歌地图Android API v2)。我在互联网上找到的那些方法中,没有一种适合我。但我还是做到了。以下是如何:
在其他版本上,由于安装必要的应用程序时出现各种错误,我无法进行配置。
2) 启动emulator并安装以下应用程序:
您可以通过以下命令完成此操作:
2.1)adb shell安装-o reount, rw-t yaffs2 /dev/block/mtdblock0 /system
2.2)adb shell chmod 777 /system/app
2.3-2.5)adb推送Each_of_the_3_apk_files.apk /system/app/
下载APK文件的链接。我已经从我的根深蒂固的Android设备复制它们。
3) 在模拟器上安装Google Play服务和Google地图。我有一个错误491,如果我安装他们从谷歌播放商店。我将应用程序上传到emulator,并在本地运行安装。(您可以使用adb
安装此软件)。应用程序的链接:
4) 完成这些步骤后,我成功地在模拟器上运行了一个演示示例。以下是一个屏幕截图:
根据与谷歌Android开发者的讨论,目前不可能在模拟器上运行新的MapAPI。
(评论来自Zhelyazko Atanasov昨天23:18,我不知道如何直接链接到它)
此外,在实际设备上运行时,您不会看到“(via Bazaar)”部分,而“更新”按钮将打开Play Store。我假设Bazaar打算在Android模拟器上提供Google Play服务,但它还没有准备好。。。
更新
谷歌地图API v2现在安装在最新的谷歌系统图像(api: 19 ARM或x86)上。
所以你的应用程序应该只使用新图像。没有必要安装这些文件。
我一直在尝试在模拟器下运行Android Google Maps V2应用程序,一旦我最终运行了Google Play服务,我将我的SDK更新为Google Play服务第4版,我的模拟器将不再运行我的应用程序。
我现在已经知道了如何从transformer平板电脑更新模拟器。(您不需要平板电脑,因为您可以下载以下文件。)
我使用钛备份备份我的华硕Eee Pad变压器(TF101),然后抓取com.Android自动售货机和com.google.Android来自备份的gms APK文件。
我在一个配置有平台的模拟器上安装了这些: 4.1.2,应用编程接口级别: 16,CPU英特尔/原子x86)和我的谷歌地图V2应用程序再次工作。
就这些。。不需要关于/system/app的任何其他步骤。
我的应用程序只使用Google Maps API,毫无疑问,如果您使用其他Google Play服务,则需要执行更多步骤。
最新Google Play服务的新文件:
>
通用域名格式。Android自动售货机-20140218。apk
与之前相同的说明:创建一个新的模拟器与任何CPU/ABI,非谷歌API目标(版本10-19工作)和GPU仿真打开或关闭,然后安装文件:
adb install com.android.vending-20140218.apk
adb install com.html" target="_blank">google.android.gms-20140218.apk
如果要升级现有仿真器,则可能需要通过以下方式卸载以前的版本:
adb uninstall com.android.vending
adb uninstall com.google.android.gms
这就是全部。
我试图使用BaseGameUtils在我的应用程序中集成游戏。一切看起来都很好,但当我运行应用程序时,我得到的消息是“这个应用程序不会运行,直到你更新谷歌播放服务”,当我点击更新按钮,播放商店在谷歌播放服务页面中打开,但我只能“打开”或“卸载”,因为它是更新的。我试图重新安装,但不起作用。 编辑:我从Logcat“GooglePlayServiceSutil:Google Play service
问题内容: 编辑: 在Github 上正在讨论一个相关的问题,但是在另一种部署模式下(Typesafe Activator UI,而不是Docker)。 我试图模拟系统重启,以验证Docker重启策略,该策略声明能够按照正确的顺序重新运行容器。 我有一个用Java编写的Play框架应用程序。 Dockerfile看起来像这样: 我使用开始。 当我 然后控制台告诉我: 编辑: 当我按照Play文档的
问题内容: 这是我的配置: 根据此处找到的logback文档(http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy),文件将根据我的fileNamePattern 每分钟翻转一次。 我观察了它是如何工作的,这是我的发现: 它不会在很短的时间内创建日志文件。 当新日志到达时,它只会为前一分钟创建一个日志文件。(例如,我在
问题内容: 好的,所以我有一个监视线程,该线程检查ArrayList的大小,并在该大小大于某个数字之后执行一些操作。我现在遇到的问题是,除非我的循环中有打印语句,否则大小值永远不会更新。这是一些代码来显示我到底要做什么。 上面的代码不起作用。它永远不会进入if语句。但是,这很好用: 编辑:getSize()代码: 注意:我有另一个正在运行的线程正在更新并添加到我的t类中的列表中。 有什么帮助吗?当
我正试图通过后台服务将数据发布到web服务器。 函数PostData将数据发送到服务器,但当我添加它时,程序显示: 不幸的是,程序停止工作 这是我的代码: 和堆栈跟踪:
使用JavaFX8,如果ObjectProperty的一个属性发生更改,但引用保持不变,那么如何能够得到通知? 下面是使用ObjectProperty的具体示例 相关代码是第一次设置的值并随后删除一个元素的位置。change eListener仅在设置的值时收到通知,但在值更改时不会收到通知。 我的问题是:即使引用的对象没有更改,如果密钥库得到更新,我如何获得通知?JavaFX中是否有内置方式?