app.indexing.code.insert.error.title=App Indexing Code Insert Error
app.indexing.code.insert.not.activity.file=Currently opened file doesn't contain activity class, please navigate to activity java file first
app.indexing.code.insert.fail.reason=Didn't find activity class in current opened java file or the activity class already has app indexing api usage
app.indexing.code.insert.dependency.missing.error=Dependency for App Indexing api is missing
app.indexing.fetch.as.google.test.error.UNKNOWN=Test failed for unknown reason
app.indexing.fetch.as.google.test.error.BUILD_APK_FAILED=Build APK failed
app.indexing.fetch.as.google.test.error.UPLOAD_APK_FAILED=Upload APK failed
app.indexing.fetch.as.google.test.error.FETCH_RESULT_FAILED=App Indexing Search preview failed
app.indexing.fetch.as.google.test.error.NEED_SIGNIN=Please sign in
app.indexing.fetch.as.google.test.error.NETWORK_ERROR=Network error. Please try again later.
app.indexing.fetch.as.google.test.error.BACKEND_ERROR=Sorry, please try again later.  We’re currently unable to check for errors in your latest released apk version.
app.indexing.fetch.as.google.test.error.NOT_FOUND=No errors found
app.indexing.fetch.as.google.test.error.RESOURCE_EXHAUSTED=Sorry, please try again later.  We’re currently unable to check for errors in your latest released apk version.
app.indexing.fetch.as.google.test.error.URI_NOT_SUPPORTED=App URLs are not supported. Make sure your Android manifest uses HTTP URLs and intent filters to reach specific content inside your app
app.indexing.fetch.as.google.test.error.UNKNOWN_URL=Google can't find your URL in the index. Check for correct formatting and provide at least one HTTP/HTTPS scheme URL
app.indexing.fetch.as.google.test.error.UNKNOWN_APP_URI=Google did not find App content associated with the URL
app.indexing.fetch.as.google.test.error.APK_NOT_FOUND=Google can't find the Android Application Package (APK) in the Play Store. Make sure you register your application and submit the APK to Google Play.
app.indexing.fetch.as.google.test.error.EMPTY_PACKAGE_ID=Cannot get package ID, please make sure you selected the correct module.
app.indexing.fetch.as.google.test.error.BLACKLISTED_URL=URL removed from index. We typically do this when users can't find what what they are looking for on your app page.
app.indexing.fetch.as.google.test.error.URL_INDEX_ERROR=Google did not index the URL due to an error
app.indexing.fetch.as.google.test.error.APP_OWNERSHIP_VERIFICATION_FAILED=We couldn't verify your ownership of this app. Check you're the owner of the app and your app is published to Google Play.
app.indexing.fetch.as.google.test.error.USER_ACTION_LOGGING_ERROR=USER_ACTION_ME
app.indexing.fetch.as.google.test.error.PERSONAL_CONTENT_INDEXING_ERROR=PERSONAL_CONTENT_ME
app.indexing.fetch.as.google.test.error.OK=OK
app.indexing.fetch.as.google.test.error.unresolved.uri=There are {0} URIs that can't be resolved by your app.
app.indexing.fetch.as.google.test.error.unresolved.uri.detail.message=To see the unresolved URIs local to your device, click the button below to the Firebase App Indexing developer tool under Settings > Google.
app.indexing.fetch.as.google.test.error.daily.update.call=You are making an average of {0} daily calls per device which seems too high.
app.indexing.fetch.as.google.test.error.daily.update.call.detail.message=Check the FirebaseAppIndex.getInstance().update() call in your code.
app.indexing.fetch.as.google.test.error.upload.call.missing=The Action.Builder.Metadata.setUpload(false) is missing from the Action objects for actions on personal content.
app.indexing.fetch.as.google.test.error.upload.call.missing.detail.message=By default, user actions are uploaded to Google servers (with the user's consent).
app.indexing.fetch.as.google.test.error.wrong.start.call=FirebaseUserActions.getInstance().start() isn’t called correctly.
app.indexing.fetch.as.google.test.error.wrong.start.call.detail.message=FirebaseUserActions.getInstance().start() shouldn\'t be called in a background task or to index all your app content. Only call that method when logging user actions. See our docs for details on adding <a href=''>public</a> and <a href=''>personal</a> app content to the index.
app.indexing.fetch.as.google.test.error.wrong.end.call=Your app content isn’t indexed properly.
app.indexing.fetch.as.google.test.success=Google can index your app URL
app.indexing.fetch.as.google.test.success.detail.message=Congratulations, no errors were found in your latest released app.
app.indexing.fetch.as.google.test.learn.more=Learn more
app.indexing.fetch.as.google.test.see.result=Please see
app.indexing.fetch.as.google.test.result.text=Search result preview
app.indexing.code.insert.dialog.ok.button=Insert Code
app.indexing.code.insert.dialog.title=Select an activity to insert code into
app.indexing.code.insert.error.non_java_file=Can't insert code into a non-Java file.
app.indexing.code.insert.error.java_file_without_activity=Can't insert code into a Java file that doesn't have an Activity class definition.
app.indexing.code.insert.error.deep_link_missing=Can't find any activity with a valid app link. To create one, follow step 3 in the Firebase App Indexing Assistant workflow.
app.indexing.code.insert.error.dependency_missing=The App Indexing library is missing. To add it, follow step 2 in the Firebase App Indexing Assistant workflow.
app.indexing.code.insert.error.api_exists=The App Indexing API is already being called in this activity, so the duplicate code could not be added.
app.indexing.login.warning.message=Sign in with your Google account to test App Indexing
app.indexing.module.not.provided.warning.message=Module not provided
app.indexing.check.error.dialog.title=Check App Indexing Errors
app.indexing.url.not.provided=URL not provided
app.indexing.button.open.developer.tool=Open Developer Tool
app.indexing.open.developer.tool.fail.message=We couldn't open the developer tool. Make sure your device is connected properly, USB debugging is enabled, and that you're using the latest version of GMS core. <a href='https://firebase.google.com/docs/app-indexing/android/test#test-personal-content-indexing'>Learn more</a>