我已在Android中使用Firebase云消息传递(FCM)API进行推送通知。当我实现那个时间完美的工作,但现在它找不到谷歌游戏的服务。
错误是:
FirebaseInstanceId:后台同步失败:SERVICE_NOT_AVAILABLE,
请帮我解决一下。我在gradle文件中使用了以下依赖项。
dependencies {
compile files('libs/ksoap2-android-assembly-3.4.0-jar.jar')
compile 'com.android.support:appcompat-v7:23.0.0'
compile files('libs/gson-2.2.4.jar')
compile files('libs/activation.jar')
compile files('libs/mail.jar')
compile files('libs/additionnal.jar')
compile 'com.android.support:multidex:1.0.1'
compile 'com.facebook.android:facebook-android-sdk:4.14.0'
compile 'com.google.firebase:firebase-messaging:9.0.2'
compile('com.google.android.gms:play-services:9.0.2') {
exclude group: "play-services-wallet"
exclude module: "play-services-wallet"
exclude group: "play-services-ads"
exclude module: "play-services-ads"
}
}
感谢您花时间阅读本文。
答案 0 :(得分:14)
答案 1 :(得分:12)
您可以查看
google-service.json
替换为新的public class Test1{
static void convert(File inputFile, File outputFile) {
try {
FileOutputStream fos = new FileOutputStream(outputFile);
// Get the workbook object for XLSX file
XSSFWorkbook wBook = new XSSFWorkbook(
new FileInputStream(inputFile));
// Get first sheet from the workbook
XSSFSheet sheet = wBook.getSheetAt(0);
Row row;
Cell cell;
// Iterate through each rows from first sheet
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
row = rowIterator.next();
// For each row, iterate through each columns
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_BOOLEAN:
data.append(cell.getBooleanCellValue() + ",");
break;
case Cell.CELL_TYPE_NUMERIC:
data.append(cell.getNumericCellValue() + ",");
break;
case Cell.CELL_TYPE_STRING:
data.append(cell.getStringCellValue() + ",");
break;
case Cell.CELL_TYPE_BLANK:
data.append("" + ",");
break;
default:
data.append(cell + ",");
}
}
}
fos.write(data.toString().getBytes());
fos.close();
} catch (Exception ioe) {
ioe.printStackTrace();
}
}
// testing the application
public static void main(String[] args) {
// reading file from desktop
File inputFile = new File("D:\\Test.xlsx");
// writing excel data to csv
File outputFile = new File("D:\\Test1.csv");
convert(inputFile, outputFile);
}
}
,您可以在firebaseconsol 答案 2 :(得分:6)
经过长时间的努力,我找到了答案,如果谷歌播放服务没有运行,那么FirebaseInstanceId background sync failed - SERVICE_NOT_AVAILABLE
日志打印,那么你可以检查你的谷歌播放服务是否正常运行?
可能这些信息对您有所帮助!
答案 3 :(得分:5)
服务需要绑定在Manifest.xml
<!-- Firebase InstanceId Service -->
<service
android:name="eu.acme.service.FireBaseInstanceIdService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
然后可以访问一个暴露的方法(其他名称被混淆=不可靠):
package eu.acme.service;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;
public class FireBaseInstanceIdService extends FirebaseInstanceIdService {
@Override
@android.support.annotation.WorkerThread
public void onTokenRefresh() {
/* obtain the current InstanceId token: */
String token = FirebaseInstanceId.getInstance().getToken();
}
}
只能通过不引发它来解决它,例如。通过不知道没有活动网络存在而不添加任何AuthState监听器,如here所解释的那样 - 否则无法捕获从库中抛出的异常 - 这可以被忽略,因为它只是抱怨,没有网络连接。
答案 4 :(得分:2)
我不得不放弃我的VPN-希望这对某人有所帮助!
答案 5 :(得分:1)
最简单的解决方案是删除.Droid目录下的bin和obj文件夹 通过这种方式,你每次都有一个干净的开始。
答案 6 :(得分:1)
就我而言,我刚从Android Studio偏好设置中删除了即时游戏
答案 7 :(得分:1)
以我为例-我重新启动了PC并可以正常工作。
我不是专家,所以我可能用我的方法涵盖了其中提到的小费
答案 8 :(得分:1)
将连接到具有不同wifi连接且与不同的服务提供商连接的手机。看起来很奇怪,但是您可以尝试!
答案 9 :(得分:1)
我也遇到了同样的问题,只需通过构建中的“清理项目”选项即可解决。希望它可以帮助这里的任何人。
答案 10 :(得分:1)
我只是有这个问题。就我而言,仅当我停止仿真器,将其关闭并再次打开时,它才起作用。我没有做任何其他更改。
答案 11 :(得分:0)
就我而言
我已在项目根目录中添加google-services.json
文件,将其移至应用程序文件夹,问题已得到解决。
MyProjectRootDir/google-services.json
move to -->
MyProjectRootDir/app/google-services.json
答案 12 :(得分:0)
您需要更新您的播放服务,并确保您的互联网连接良好。