Tag: 安卓

如何获得一个不可滚动的ListView?

我应该想要一个不可滚动的ListView,并显示整个ListView。 这是因为我的整个屏幕是一个ScrollView,我用一个RelativeLayout调度小部件,所以我不需要ListView滚动。 我用代码设置了我的用户界面,而不是用xml。 我已经使用listView.setScrollContainer(false) ,但它不工作,我不明白为什么。 谢谢。

Android MapActivity:无法获取连接工厂客户端

我试图让Google地图演示程序正常工作,正如Google API示例项目中所提供的。 我正在使用AVD,并尝试过版本8,10和11,并得到相同的问题。 我已经生成了我自己的debugging密钥并添加到项目中。 我可以看到应用程序启动地图,并可以放大等 – 所以我得到的地图瓷砖,罚款。 是的 – 我在Manifest文件中设置了正确的权限和库(按照样本)。 但是,我无法通过DDMS或Telnet在地图上设置位置。 我在LogCat中看到以下错误:MapActivity:无法获取连接工厂客户端 我已经阅读了关于这个问题的许多线索,但他们似乎总是作为一个糟糕的API密钥的结果; 我没有,因为我正在检索地图瓷砖。 所以我创build了我自己的项目来进一步testing,并在我的映射初始化时执行以下代码: myLocationOverlay = new MyLocationOverlay(this, mapView); mapView.getOverlays().add(myLocationOverlay); myLocationOverlay.enableCompass(); myLocationOverlay.enableMyLocation(); Log.i("funkatron: ", "ABOUT TO CALL RUN ON FIRST FIX"); myLocationOverlay.runOnFirstFix(new Runnable() { public void run() { String loc = "we have a location, executing AnimateTo(). "+myLocationOverlay.getMyLocation().toString(); Log.i("funkatron:",loc); mapController.animateTo(myLocationOverlay.getMyLocation()); } }); 我看到我的第一个日志语句,但从来没有第二个,和“MapActivity:无法获得连接工厂客户端”被写入LogCat在这一点上。 我已经读过,SDK […]

java.lang.NoClassDefFoundError:com.google.android.gms.internal.zzmp

在启动我的应用程序时在Android 4.4设备上收到此错误。 应用程序立即崩溃。 不过,我没有Android 5.1设备上的这个错误。 任何线索? 10-15 22:35:06.306 14072-14072 / com D / dalvikvm:VFY:将操作码0x71replace为0x0000 10-15 22:35:06.306 14072-14072 / com D / AndroidRuntime:closuresVM 10-15 22:35 :06.306 14072-14072 / com W / dalvikvm:threadid = 1:线程退出时未捕获的exception(group = 0x4304b160)10-15 22:35:06.306 14072-14072 / com E / AndroidRuntime:致命exception:主进程:com。 ,PID:14072 com.google.android.gms上的com.google.android.gms.measurement.internal.zzz.zzj(未知源代码)中的java.lang.NoClassDefFoundError:com.google.android.gms.internal.zzmp。 com.google.android.gms.measurement.internal.zzz.zzA.(未知来源)com.google.android.gms.measurement.internal.zzv.zzaL(未知来源)中的measurement.internal.zzv。(未知来源)在android.content.ContentProvider.attachInfo(ContentProvider.java:1562)上的android.content.ContentProvider.attachInfo(ContentProvider.java:1591)上的com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(未知源) .app.ActivityThread。 在android.app.ActivityThread.access $ 1500(ActivityThread。)上的android.app.ActivityThread.handleBindApplication(ActivityThread.java:4365)上的android.app.ActivityThread.installContentProvider(ActivityThread.java:4425)上的installProvider(ActivityThread.java:4830)在android.os.Handler.dispatchMessage(Handler.java:102)android.os.Looper.loop(Looper.java:149)上的android.app.ActivityThread $ .HandleMessage(ActivityThread.java:1296) )at android.app.ActivityThread.main(ActivityThread.java:5061)at java.lang.reflect.Method.invokeNative(Native Method)at […]

Google Play Services V2库中的NoClassDefFoundError

遵循官方教程后,尝试使用Google Play服务V2库时,出现以下exception。 java.lang.NoClassDefFoundError: com.google.android.gms.R$string at com.google.android.gms.common.GooglePlayServicesUtil.b(Unknown Source) at com.google.android.gms.common.GooglePlayServicesUtil.a(Unknown Source) at com.google.android.gms.common.GooglePlayServicesUtil.getErrorDialog(Unknown Source) 我哪里做错了?

Android Studio中的模拟器无法启动

我认为这是项目结构中的SDK参考的一个问题,但是当我单击运行并select启动模拟器时,什么都不显示。

从GoogleMap中移除一个标记

在新的Android版Google Maps API中,我们可以添加一个标记 ,但无法(轻松)删除标记 。 我的解决scheme是将标记保留在地图中,当我想删除标记时重绘地图,但效率不高。 private final Map<String, MarkerOptions> mMarkers = new ConcurrentHashMap<String, MarkerOptions>(); private void add(String name, LatLng ll) { final MarkerOptions marker = new MarkerOptions().position(ll).title(name); mMarkers.put(name, marker); runOnUiThread(new Runnable() { @Override public void run() { mMap.addMarker(marker); } }); } private void remove(String name) { mMarkers.remove(name); runOnUiThread(new Runnable() { @Override public void run() […]

没有find类“com.google.firebase.provider.FirebaseInitProvider”?

我在应用程序启动时遇到以下例外情况。 java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]] at android.app.ActivityThread.installProvider(ActivityThread.java:4993) at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536) at android.app.ActivityThread.access$1300(ActivityThread.java:149) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5214) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on […]

如何使用Firebase消息发送一对一消息

我一直在尝试阅读关于如何从一个设备发送消息到另一个设备的官方文档和指南。 我已经在实时数据库中保存了这两个设备的注册令牌,因此我有另一个设备的注册令牌。 我已经尝试了以下方式发送消息 RemoteMessage message = new RemoteMessage.Builder(getRegistrationToken()) .setMessageId(incrementIdAndGet()) .addData("message", "Hello") .build(); FirebaseMessaging.getInstance().send(message); 但是这不起作用。 其他设备不会收到任何消息。 我甚至不确定,如果我可以使用上行消息发送进行设备到设备的通信。 PS:我只想知道是否可以使用FCM进行设备到设备的消息传递? 如果是,那么我使用的代码有一些问题? 如果是,那么正确的方法是什么。 更新: 我的问题是询问设备到设备的消息传递,而不使用除firebase以外的任何单独的服务器可以消息传递是否可能,如果是的话比如何,因为没有关于它的文档。 我不明白这里要解释什么? 无论如何,我得到了答案,并将问题重新打开后,将其作为答案更新。

在Android设备上安装应用程序后,仅运行一次代码

我只想在安装应用程序之后运行一段代码。 执行后,即使升级,也不应再次调用该特定代码。

获取权限拒绝例外

我在我的应用程序中有一个活动,允许用户从设备中逐一select几个文件,我正在使用这样的意图: Intent intent = new Intent(); intent.setType("*/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, getString(R.string.select_attachments_activity_chooser_label)), SELECT_PICTURE); 这工作得很好,我得到的Uri的文件select,他们看起来像这样: content://com.android.providers.media.documents/document/image%3A42555 那么,如果该文件是一个图像,我解码它: InputStream streamForDecodeBitmap = MyApp.getContext().getContentResolver().openInputStream(uri); Bitmap bitmap = BitmapFactory.decodeStream(streamForDecodeBitmap, null, options); 当用户点击一个button时,我通过intent将Uris列表传递给另一个活动,并且在这个活动中,在一个AsyncTask中,我使用base64对文件进行编码以便通过networking发送: InputStream is = MyApp.getContext().getContentResolver().openInputStream(uri); byte[] inputData = getBytes(is); is.close(); return Base64.encodeToString(inputData, Base64.DEFAULT); 问题是,当我打开inputStream,有时它的工作,但大部分时间我得到这个exception: E/AndroidRuntime(22270): Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{42858fe0 22270:co.uk.manifesto.freeagentapp/u0a246} (pid=22270, uid=10246) requires android.permission.MANAGE_DOCUMENTS or […]