Android应用程序索引 - > FirebaseAppIndexingInvalidArgumentException

时间:2016-12-14 17:15:49

标签: android firebase android-app-indexing firebase-app-indexing

HeJ小鼠!

我正在尝试实施应用程序索引内容,并且我已经开始使用app-indexing Google codelabs示例。

运行此代码

//NAV

    $(document).ready(function(){
      $(window).scroll(function() {
        if ($(document).scrollTop() > 50) {
          $("#posnav").animate({
          backgroundColor: "#aa0000"
        }, 1000 );
        } else {
          $("#posnav").animate({
          backgroundColor: "#transparant"
        }, 1000 );
        }
      });
    });

始终会导致 Indexable recipeToIndex = new Indexable.Builder() .setName(mRecipe.getTitle()) .setUrl(mRecipe.getRecipeUrl()) .setImage(mRecipe.getPhoto()) .setDescription(mRecipe.getDescription()) .build(); FirebaseAppIndex.getInstance().update(recipeToIndex); 方法抛出FirebaseAppIndexingInvalidArgumentException

update()

您是否有建议如何将图片添加到com.google.firebase.appindexing.FirebaseAppIndexingInvalidArgumentException: Intent 'Intent { act=android.intent.action.VIEW dat=http://example.com pkg=com.example }' cannot be resolved. The invalid indexable is: Indexable { { id: 'http://example.com/123' } Properties { { key: 'name' value: [ 'test_name' ] } } Metadata { worksOffline: false, score: 0 } } at com.google.firebase.appindexing.internal.zzn.zzb(Unknown Source) at com.google.firebase.appindexing.internal.zzd$zzc$1.onComplete(Unknown Source) at com.google.android.gms.tasks.zzc$1.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5951) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)

4 个答案:

答案 0 :(得分:1)

删除图片信息或编辑此类代码。

if (friendlyMessage.getText() != null) {
   FirebaseAppIndex.getInstance().update(getMessageIndexable(friendlyMessage));
}
FirebaseUserActions.getInstance().end(getMessageViewAction(friendlyMessage));

教程似乎没有考虑没有消息的消息。所有消息都应该是带有图像的文本或文本。要解决它,你应该检查。 https://github.com/firebase/friendlychat/issues/160

答案 1 :(得分:1)

我收到此错误的原因是因为我正在测试的应用的清单中没有意图过滤器。

确保您在可转位文件上设置的清单

中有匹配的条目



    <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <intent-filter android:label="@string/app_name" android:autoVerify="true">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="http"
                    android:host="century.com"
                    android:pathPrefix="/recipe" />
            </intent-filter>
        </activity>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

确保setUrl()收到格式正确的网址,我的网址为http://app.com//path

//之前的路径引起了问题

  Indexable recipeToIndex = new Indexable.Builder()
           .setName(mRecipe.getTitle())
           .setUrl(Uri.parse(mRecipe.getRecipeUrl()).toString())
           .setImage(Uri.parse(mRecipe.getPhoto()).toString())
           .setDescription(mRecipe.getDescription())
           .build();

这对setImage来说并不那么重要

答案 3 :(得分:-1)

您应该选择适当的(或更适合的)来自Indexables类的构建器。