小编idu*_*olz的帖子

Android 2.2上的GCM SERVICE_NOT_AVAILABLE

我在Android 2.2设备上的GoogleCloudMessaging.register()调用上收到错误"SERVICE_NOT_AVAILABLE".

我正在编写一个使用新版Google Play服务使用GoogleCloudMessaging的应用.我使用Android网站上提供的指南实现了它,我的源代码包含大量错误检查和处理代码,例如确保安装或更新Google Play服务.GCM注册码还实现了谷歌的指数退避,建议用来处理SERVICE_NOT_AVAILABLE错误.

我已经在各种设备上测试了我的应用程序,包括ICS,JB,Honey Comb甚至2.3.x设备.GCM注册工作,我可以通过GCM向它发送消息.但是在2.2设备上,我在GoogleCloudMessaging.register()调用中不断收到SERVICE_NOT_AVAILABLE错误,即使有指数退避也是如此.

GCM失败的设备确实是三星SGH-I896,手机上有2个谷歌帐户.我已经读过这个错误可能是由错误配置的时间引起的,但是时间设置为自动的.这款手机没有上线,正在运行三星股票ROM.

我也试过重新启动设备以及重新安装Google Play服务而没有运气.任何有关此问题的帮助将不胜感激.

编辑:我尝试使用旧的gcm.jar和GCMRegistrar实现GCM,它最终在设备上工作.但是我几乎不认为这是一个很好的解决方案,因为谷歌已经停止支持这种方法了.

编辑2:看到接受的答案.

android android-2.2-froyo google-cloud-messaging google-play-services service-not-available

16
推荐指数
2
解决办法
1万
查看次数

在ConstraintLayout中与障碍物链接

我想使用没有嵌套的ConstraintLayout实现下面的布局。

在此处输入图片说明

布局需要一个障碍,因为不能保证哪个textview会更高。这也需要一条链,因为一切都需要居中。问题是我找不到使壁垒与壁垒一起工作的方法。

到目前为止,这是我可以正确布局但不会居中的内容:

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <TextView
        android:id="@+id/topLeftText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        tools:text="Test test test test test test test test test test"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/topRightText"/>

    <TextView
        android:id="@+id/topRightText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginBottom="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginEnd="16dp"
        tools:text="Test test test test test test test test test test test test test test test test test test test test"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toEndOf="@+id/topLeftText"
        app:layout_constraintEnd_toEndOf="parent"/>

    <android.support.constraint.Barrier
        android:id="@+id/barrier"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:constraint_referenced_ids="topLeftText,topRightText"
        app:barrierDirection="bottom"/>

    <TextView
        android:id="@+id/bottomText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        tools:text="Test test test test test test test test test test …
Run Code Online (Sandbox Code Playgroud)

android android-constraintlayout

15
推荐指数
1
解决办法
272
查看次数

Crashlytics 在 Google“Mainline”设备上报告了奇怪的崩溃?

在我的应用程序的几乎每个 Play 商店版本中,我都会收到奇怪的崩溃报告,指出某些资源文件丢失。反编译APK显示资源在那里。崩溃始终是由 1 台设备上的 1 位用户造成的。

令人费解的是,设备型号名称是“Mainline”,制造商是“Google”。在 Google 上环顾四周,没有型号名称为“Mainline”的设备,但有一个名为“Mainline”的项目。有谁知道导致这些崩溃的原因是什么?谷歌正在进行一些奇怪的测试吗?

Crashlytics 的屏幕截图: 在此输入图像描述

android crash-reports

15
推荐指数
1
解决办法
678
查看次数

Android:EXTERNAL_CONTENT_URI足够用于照片库吗?

我正在玩Android的MediaStore类,当我注意到两个图像内容URI时,我试图创建一个非常简单的照片库应用程序:EXTERNAL_CONTENT_URIINTERNAL_CONTENT_URI.起初我以为它是指存储的位置(外部SD或内部存储器),但经过一些测试后,情况显然并非如此.我在这里阅读了更多关于它的内容,它似乎表明内部内容uri实际上是设备上每个应用程序内部的内容.但是我并不完全确定并希望更熟悉这些MediaStore课程的更有经验的开发人员提出意见.

所以我的主要问题是,只是查询EXTERNAL_CONTENT_URI是否足以获得所有重要的照片?如果有可能回答,究竟是INTERNAL_CONTENT_URI什么以及它应该用于什么?

android mediastore

14
推荐指数
1
解决办法
5298
查看次数

构建X:Y格式的Uri

我正在尝试构建一个Uri,这是一种意图查询地图上某个位置的最正确的方法.在地图意图的文档中,指出Uris应具有以下形式:geo:0,0?q=my+street+address.我尝试使用Uri.Builder,但没有找到指定"0,0" uri部分的方法,因为Uri.Builder没有指定路径的函数而没有预先添加'/'.目前我使用以下代码:

uri = new Uri.Builder()
         .scheme(URL_SCHEME_MAP)
         .encodedOpaquePart("0,0?q=" + query)
         .build();
Run Code Online (Sandbox Code Playgroud)

哪个好,但不如我想要的那么好.所以我想知道是否有人知道更好/更好的方法来做到这一点.

android uri

7
推荐指数
2
解决办法
2548
查看次数

Kotlin是否支持部分申请?

由于Kotlin支持函数式编程的许多概念,我想知道是否有办法在Kotlin中部分应用函数?

部分应用程序可能有用的一个这样的例子是:

// In one class
fun doSomething(cb: (a, b) -> Unit) {
    <some logic here to compute someField>
    doSomethingElse(cb.applyPartially(someField))
}

// In another class
fun doSomethingElse(cb: (b) -> Unit) {
    <some logic here to compute someOtherField>
    cb(someOtherField)
}
Run Code Online (Sandbox Code Playgroud)

functional-programming partial-application kotlin

7
推荐指数
2
解决办法
1062
查看次数

在调用dispose()之前是否需要检查isDisposed()?

我正在学习RxJava,我注意到很多示例代码isDisposed()在调用之前都会进行检查dispose()。当我呼吁dispose()已经处置的时候,我没有发现任何问题Disposable

所以我的问题是,我需要isDisposed()支票吗?isDisposed()在处置前是否有应检查的情况?首先进行检查的利弊是什么?

android rx-java2

4
推荐指数
1
解决办法
1394
查看次数

getParcelable() 由于 AGP 8 中的 ifTable 为空而崩溃

我最近更新到了 AGP 8,并在 Play 商店上发布了更新。我收到一些最近未更改的代码区域发生崩溃的报告。我相当有信心这是由 AGP 8 升级引起的崩溃,特别是在 R8 全模式周围。

崩溃周围的代码正在恢复布局管理器的状态。

恢复代码

if (savedInstanceState != null) {
    oldRecyclerLayoutState = savedInstanceState.getParcelableCompat(
        SIS_RECYCLER_LAYOUT_STATE,
    )
}
Run Code Online (Sandbox Code Playgroud)

保存实例代码

private lateinit var layoutManager: LinearLayoutManager
...
override fun onSaveInstanceState(outState: Bundle) {
    outState.putParcelable(SIS_RECYCLER_LAYOUT_STATE, layoutManager.onSaveInstanceState())
    super.onSaveInstanceState(outState)

}
Run Code Online (Sandbox Code Playgroud)

Class.isAssignableFrom()崩溃报告表明,读取 Parcelable 会崩溃,因为调用类时其 ifTable 为 null 。从AOSP中,我可以看到 anifTable是一个接口表。我假设isAssignableFrom正在使用 来ifTable确定可分配性,但是由于类为空,它无法读取它。不幸的是,该错误没有告诉我哪个类为空。

完整的堆栈跟踪:

Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'java.lang.Object[] java.lang.Class.ifTable' on a null object reference in method 'boolean java.lang.Class.isAssignableFrom(java.lang.Class)'
       at java.lang.Class.isAssignableFrom(Class.java:579)
       at …
Run Code Online (Sandbox Code Playgroud)

android parcelable android-r8 android-gradle-plugin-8.0

3
推荐指数
1
解决办法
802
查看次数