小编Jak*_*eam的帖子

XML形状可绘制不呈现所需的颜色

我定义了一个 drawable

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
  <solid android:color="#ffffffff" />
  <size android:width="60dp"
        android:height="40dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

但是如何在layout定义中使用它呢?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              >
    <ImageView
        android:src="@drawable/ic_title"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我仍然只看到黑色背景.

编辑:

结果我:drawable xmlns宣言中错过了一个.现在这个例子适用于姜饼设备:)

android drawable

39
推荐指数
2
解决办法
10万
查看次数

Dagger和Kotlin.Dagger不生成组件类

我是kotlin和Dagger的新人.我有一个小问题,我不知道如何解决,我找不到解决方案.

所以这就是我的意思

@Module
class AppModule (app: Application) {
    private var application: Application;

    init {
        this.application = app;
    }

    @Provides fun provideApplication(): Application? {
        return application;
    }

    @Provides fun provideResources(): Resources? {
        return application.resources;
    }
}

@Singleton
@Component(modules =  arrayOf(AppModule::class))
interface AppComponent: AppComponentBase {

    public class Initializer {
        private constructor(){}

        companion object {
            fun Init(app: Application): AppComponent? {
                return DaggerAppComponent.builder().appModule(AppModule(app)).build()
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}

@Module
class AppModule (app: Application) {
    private var application: Application;

    init {
        this.application = app;
    } …
Run Code Online (Sandbox Code Playgroud)

kotlin dagger-2

39
推荐指数
4
解决办法
2万
查看次数

Google 的 Cast MediaNotificationService 中的大量 RemoteServiceExceptions

在过去的大约 24 小时内,我们在 Google 中看到了数千次崩溃MediaNotificationService

Fatal Exception: android.app.RemoteServiceException
    Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{f9a4deb u0 <our package name>/com.google.android.gms.cast.framework.media.MediaNotificationService}
    android.app.ActivityThread$H.handleMessage (ActivityThread.java:1855)
    android.os.Handler.dispatchMessage (Handler.java:106)
    android.os.Looper.loop (Looper.java:214)
    android.app.ActivityThread.main (ActivityThread.java:6986)
    java.lang.reflect.Method.invoke (Method.java)
    com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
    com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1445)
Run Code Online (Sandbox Code Playgroud)

我在创建自己的前台服务时遇到过类似的问题,但由于这是在演员库中,我们无法控制它。

Chromecast 接收器由第三方处理。我们正在使用:

api "com.google.android.gms:play-services-cast:17.0.0"
api "com.google.android.gms:play-services-cast-framework:17.0.0"
Run Code Online (Sandbox Code Playgroud)

潜在线索:

  • 它发生在 OnePlus、华为、三星、谷歌,似乎每个制造商(和操作系统级别)的数量都与其市场份额相关。
  • 崩溃发生在不同设备的不同线路上(例如,上面是 Galaxy S9,S8 则在 1872 线路上崩溃),因此在 Crashlytics 上没有分组在一起。这向我表明这是操作系统/Google Play 服务级别的问题。
  • 崩溃发生在应用程序的所有活动版本中,同时开始。
  • 几个月来,撞车事故的数量一直很少,但在周末突然飙升,而且没有放缓的迹象。

更新:终于设法重现了这一点。在屏幕锁定的情况下长时间投射内容,然后与设备断开连接时会发生崩溃。也许离解决方案更近了一步......

android google-play-services chromecast foreground-service

11
推荐指数
2
解决办法
1212
查看次数

Crashlytics 不会在仪表板中出现崩溃

我在我的项目中添加了 Firebase Crashlytics,并使用以下代码强制创建了崩溃。崩溃已在 logcat 中创建并登录,但未出现在 Crashlytics 仪表板中!

我为我的项目启用了调试日志记录,并且在强制崩溃时看到了以下消息,但我不知道这是什么/问题是什么?

我可以在 Fabric 控制台中看到我的错误,但它们没有显示在 Firebase 中。在 Firebase 中,过去 30 分钟内的用户等 Analytics 报告适用于我的应用程序。我已经尝试了大约 3 天,但仍然看不到我的仪表板中的错误!

我的代码:

  Button crashBtn=findViewById(R.id.crashBtn);
    crashBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Crashlytics.getInstance().crash();
        }
    });
Run Code Online (Sandbox Code Playgroud)

使用 adb 启用调试日志后我的错误:

01-30 09:38:58.919 24986 24986 D CrashlyticsCore: Crashlytics is handling uncaught exception "java.lang.ArrayIndexOutOfBoundsException: length=2; index=10" from thread main
01-30 09:38:58.956 24986 25028 D CrashlyticsCore: No log data to include with this event.
01-30 09:38:59.121 24986 25028 D CrashlyticsCore: Closing open sessions.
01-30 …
Run Code Online (Sandbox Code Playgroud)

crash android firebase crashlytics

10
推荐指数
2
解决办法
3007
查看次数

Crashlytics.app在“添加运行脚本”步骤中添加新应用程序

发现了Crashlytics.app问题。应用程式未处理Xcode建立成功通知。要解决此问题,请在调试模式下设置“构建设置->调试信息格式->具有dSYM文件的DWARF”。

java ios crashlytics google-fabric

9
推荐指数
0
解决办法
376
查看次数

Google 的旁载检查文档发生了什么?

使用应用程序包时,存在用户将自定义 APK“旁加载”到不兼容设备上的风险。这可能会导致崩溃,因为所需的密度/语言将不存在。

\n\n

MissingSplitsManager为了解决这个问题, Google Play Core 中有一个方便的工具。这会在启动时向用户显示有用的错误,而不是崩溃。需要做的就是将以下内容添加到应用程序类中:

\n\n
override fun onCreate() {    \n    if (MissingSplitsManagerFactory.create(this).disableAppIfMissingRequiredSplits()) {\n        return\n    }\n    super.onCreate()\n} \n
Run Code Online (Sandbox Code Playgroud)\n\n

此检查非常容易实现,之前可以在https://developer.android.com/guide/app-bundle/sideload-check上找到详细说明。到处都有指向此内容的链接,例如在 Realm 问题中或在MissingSplitsManager 文档的顶部。

\n\n

但是,此链接现在重定向到“已知问题”部分,其中非常模糊:

\n\n
\n

部分安装旁加载应用程序\xe2\x80\x94,即未使用 Google Play 商店安装且缺少一个或多个必需的拆分 APK\xe2\x80\x94 的应用程序在所有 Google 认证设备和运行 Android 10 的设备上失败( API 级别 29) 或更高。通过 Google Play 商店下载您的应用程序时,Google 会确保安装该应用程序的所有必需组件。

\n
\n\n

所以发生了什么事?为什么不再提及库的简单检查,甚至在库的文档中也是如此。

\n\n

也许该库存在一些未记录的问题?也许 Google 根本不想帮助侧载?

\n

android sideloading android-app-bundle

8
推荐指数
1
解决办法
1688
查看次数

在 Dagger 1 项目中支持 Dagger 2 依赖项

这是我关于 Play Services Cast Framework 的问题的后续,其中解决方案似乎从 v17.0.0 更新到 v18.0.0。不幸的是,新版本依赖于 Dagger 2,而(大型且复杂的)项目是 Dagger 1。

我们目前正在使用:

api "com.google.android.gms:play-services-cast:17.0.0"
api "com.google.android.gms:play-services-cast-framework:17.0.0"
Run Code Online (Sandbox Code Playgroud)

将这些更新到 18.0.0 会导致:

> 1 exception was raised by workers:
java.lang.RuntimeException: Duplicate class dagger.Lazy found in modules dagger-1.2.2.jar (com.squareup.dagger:dagger:1.2.2) and dagger-2.22.jar (com.google.dagger:dagger:2.22)
Duplicate class dagger.MembersInjector found in modules dagger-1.2.2.jar (com.squareup.dagger:dagger:1.2.2) and dagger-2.22.jar (com.google.dagger:dagger:2.22)
Duplicate class dagger.Module found in modules dagger-1.2.2.jar (com.squareup.dagger:dagger:1.2.2) and dagger-2.22.jar (com.google.dagger:dagger:2.22)
Duplicate class dagger.Provides found in modules dagger-1.2.2.jar (com.squareup.dagger:dagger:1.2.2) and dagger-2.22.jar (com.google.dagger:dagger:2.22)
Run Code Online (Sandbox Code Playgroud)

理想情况下,我可以让库的新版本使用 Dagger 2,而应用程序的其余部分使用 Dagger 1。重新设计项目以使用 …

android gradle google-play-services dagger-2

7
推荐指数
0
解决办法
245
查看次数

AndroidStudio:在模块annotations-13.0和kotlin-compiler-embeddable中发现重复的类

本周更新 AndroidStudio 我被迫添加 AnnotationProcessor:

(根本不明白是为了什么。)

现在必须显式声明注释处理器。发现编译类路径上的以下依赖项包含注释处理器。请将它们添加到annotationProcessor配置中。kotlin-compiler-embeddable-1.3.11.jar (org.jetbrains.kotlin:kotlin-compiler-embeddable:1.3.11)

所以我添加到我的 app.build.gradle 中:

dependencies {
...
annotationProcessor "org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlin_version"
...
}
Run Code Online (Sandbox Code Playgroud)

但现在我无法摆脱以下错误:

Run tasks :app:checkDebugDuplicateClasses
> Duplicate class found in  modules annotations-13.0.jar (org.jetbrains:annotations:13.0) and kotlin-compiler-embeddable-1.3.11.jar   (org.jetbrains.kotlin:kotlin-compiler-embeddable:1.3.11)
Run Code Online (Sandbox Code Playgroud)

我不知道org.jetbrains:annotations:13.0在我的 gradles 或设置中声明/导入的位置。

我该如何解决这个错误?

android kotlin

6
推荐指数
1
解决办法
4580
查看次数

检查PHP引用者

因此,我需要使用php检查引用者到页面,如果是*.example.com或*.anothersite.com,则执行代码,但如果没有,则重定向到其他地方.

我如何检查HTTP_REFERER是否等于具有通配符的那些值?

谢谢!

编辑:网址将包含多个域,因此正则表达式需要匹配找到的第一次出现.

php regex

5
推荐指数
3
解决办法
2万
查看次数

如何在Firebase Crashlytics中搜索崩溃?

我已将应用程序从“ Fabric Crashlytics”迁移到“ Firebase Crashlytics”,并成功测试了新的崩溃是否到来。

但是很遗憾,我没有选择搜索问题的选项。我看到了“按用户搜索”选项,但是如果我想通过崩溃消息进行搜索,则不能。

这就是我引发异常的方式:

throw new RuntimeException("FirebaseTestDebug crash");
Run Code Online (Sandbox Code Playgroud)

我希望能够通过以下字符串搜索此异常: "FirebaseTestDebug"

我绝对可以使用以下UI在“ Fabric Crashlytics”中执行此操作: 在此处输入图片说明

firebase crashlytics crashlytics-android firebase-crash-reporting google-fabric

5
推荐指数
1
解决办法
772
查看次数