我自己无法重新创建它。这是一个崩溃,已经出现在Crashlytics by Fabric。
行号指向:
char cBuff[100];
buffptr = cBuff;
while (( nbytes = read(fd, buffptr, cBuff + sizeof(cBuff) - buffptr - 1)) > 0)
{
//Do something
}
if(nbytes < 0 )
{
perror("Serial Read Thread ERROR:");
}
else if(nbytes >= 0 )
{
//Do something
}
我看不出我出错的地方。
'App'是Application类的扩展,它位于清单中并且在我测试的设备上正常工作。就像这样:
App.getApp().getApplicationComponent().inject(this);
有问题的崩溃片段具有使用@Inject注释标记的依赖关系。
这是一个完整的堆栈跟踪:
applicationComponent = DaggerApplicationComponent.builder()
.appModule(new AppModule(this))
...
...
.netModule(new NetModule())
.build();
答案 0 :(得分:0)
我刚刚通过返回默认对象而不是null来修复了同样的问题。我的错误始于相同的Dagger消息。我以为我可以在注入的类中处理null。使所有依赖项不可为空是很有意义的,因为它们可以是其他依赖项的一部分。这是非常基础的,但当然在编码时我没有想到这一点。
@Provides
@Singleton
public FavCountry provideFavoriteCountry(RealmProvider realmProvider){
FavCountry country = realmProvider.getRealm().where( FavCountry.class ).findFirst();
//wait a minute, the table can be empty
if( country == null ){
country = new FavCountry("");
}
return country;
}