我通过OkHttp库实现我的http调用.一切正常,但我注意到,当我作为响应的字符串访问身体两次时,IllegalStateException将被抛出.也就是说,我(例如):Log.d("TAG", response.body().string())之后我真的想要使用那个字符串processResponse(response.body().string()).但是第二次调用会抛出异常消息closed.
怎么可能两次访问字符串导致失败?我想处理该响应而不需要添加包装器/虚拟对象只是为了保存一些值(如header,body,statuscode).
我正在为我的应用程序实现一个数据库,我正在尝试将它"连接"到我的REST接口.数据以JSON形式出现,并且使用新的JSON-Support(从Realm 0.76开始)我可以将JSON抛给我Realm.createObjectFromJson(MyType.class, jsonString),它会创建适当的obejcts和RealmLists.
但我怎么能这样做呢?也就是说,使用RealmObject并将其序列化为JSON?它还应该序列化该对象内的任何RealmList.
是否可以将独立对象添加到已经存在于领域中的RealmObject的RealmList中?
嗯,我知道它不起作用,因为我在(object.row.getIndex():RealmList:94)获得NPE
我想做的是:
mRealm.beginTransaction;
contact.getEmails().add(new Email());
mRealm.commitTransaction;
Run Code Online (Sandbox Code Playgroud)
因为在那个特定时刻我无法访问Realm(我可以使它工作,但我必须重写一些结构),例如:
//In Activity
Contact contact = Realm.where(Contact.class).equalsTo("name","pete").findAll().first();
mRealm.beginTransaction;
UpdateHelper.update(contact);
mRealm.commitTransaction;
//Helper class some else package
public static void update(Contact contact) {
//do update stuff
contact.getEmails().add(new Email());
}
Run Code Online (Sandbox Code Playgroud)
`
我刚刚将Crashlytics集成到我的应用程序中.但我有一个"问题":它始终启用
在他们的页面上(以及在各种stackoverflow线程中)它表示将其关闭我必须在我的build.gradle中包含ext.enableCrashlytics = false.所以我的buildTypes如下所示
buildTypes {
debug {
applicationIdSuffix ".debug"
versionNameSuffix "-DEV"
ext.enableCrashlytics = false
}
release {
minifyEnabled false //TODO:Switch to true and add Proguard config to release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ext.enableCrashlytics = true
}
}
Run Code Online (Sandbox Code Playgroud)
但每次我运行调试buildType时,应用程序都可以正常工作,即Crashlytics.start(this)可以正常运行,即使我认为它甚至无法编译到应用程序中,启用enableCrashlytics = false(报告奇怪的"问题")我知道).
我想了解为什么应用程序没有崩溃(以进一步提高我对使用build.gradle文件的理解).我想了解为什么我无法使用Crashlytics themselve提出的gradle指令禁用Crashlytics.我知道我可以通过简单地不启动它来摆脱Crashlytics(没有调用Crashlytics.start(this))但是那么指令enableCrashlytics会没用,对吧?
我错过了什么吗?
由于 Gradle 在 android 开发人员中非常流行,并且由于 gradle-android 插件得到了大量开发,因此构建系统现在非常易于使用,并为开发 android 应用程序提供了很多功能。
我的问题是,如果创建一个纯 java(即非 android)项目,这些甜蜜的东西也可以使用吗?像 buildType 这样的东西在非安卓环境中也很有意义。
我已经很习惯使用 Gradle,但我必须制作一个纯 Java 项目,我想提高我对 gradle 的了解(使用它更复杂一点),我不想进入另一个构建系统,如 maven 或 ant。
我正在创建一个应该有minSdk = 15和targetSdk = 21的应用程序,因此我想使用appcompat-v7库提供的功能.
我总是想知道在使用supportlibrary-v7时是否应该使用getFragmentManager或getSupportFragmentManager.
我现在遇到一个小问题:当使用getFragmentManager(因此使用框架片段和fragmenttransaction)时,我无法通过按下后退按钮弹出后台 - 我必须做一个backStackCount> 0检查并手动popBackStack,否则我的活动简单完成了.当我将我的小应用程序切换为使用v4类(getSupportFragmentManager等)时,此问题得以解决.我觉得这很好,但我想有一个指导方针/最佳实践,以了解哪条路走,为什么
所以,我的Activity继承自ActionBarActivity(根据AppCompat-Blog-Entry),我使用的是新工具栏,我应该只使用v4-Fragments(-Manager,-Transactions)吗?
我没有找到任何最佳实践或指导.我不确定在决定这两者时要考虑什么: - /
android android-appcompat android-fragments android-support-library fragmentmanager