我BitmapDescriptor
在创建MarkerOptions
使用VectorDrawable
API 5.0+的图标时遇到谷歌地图问题
用于创建的方法:
@NonNull
private BitmapDescriptor getBitmapDescriptor(int id) {
return BitmapDescriptorFactory.fromResource(id);
}
Run Code Online (Sandbox Code Playgroud)
当id
参数包含png drawable时,一切都很好,但是如果我VectorDrawable
在xml中定义它,那么当googleMap.addMarker(marker)
(BitmapDescriptor
不是null)时,App总会崩溃.
11-05 10:15:05.213 14536-14536/xxx.xxxxx.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: xxx.xxxxx.app, PID: 14536
java.lang.NullPointerException
at com.google.a.a.ae.a(Unknown Source)
at com.google.maps.api.android.lib6.d.dn.<init>(Unknown Source)
at com.google.maps.api.android.lib6.d.dm.a(Unknown Source)
at com.google.maps.api.android.lib6.d.ag.<init>(Unknown Source)
at com.google.maps.api.android.lib6.d.eu.a(Unknown Source)
at com.google.android.gms.maps.internal.j.onTransact(SourceFile:167)
at android.os.Binder.transact(Binder.java:380)
at com.google.android.gms.maps.internal.IGoogleMapDelegate$zza$zza.addMarker(Unknown Source)
at com.google.android.gms.maps.GoogleMap.addMarker(Unknown Source)
at xxx.xxxxx.app.ui.details.DetailActivity.lambda$initGoogleMaps$23(DetailActivity.java:387)
at xxx.xxxxx.app.ui.details.DetailActivity.access$lambda$10(DetailActivity.java)
at xxx.xxxxx.app.ui.details.DetailActivity$$Lambda$13.onMapReady(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source)
at com.google.android.gms.maps.internal.zzl$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:380) …
Run Code Online (Sandbox Code Playgroud) 在Android Studio 2.3中,没有允许用户在Edit configuration
窗口中设置其他测试运行器参数的字段Android Instrumented Tests
,但是此选项在2.2.x版本中存在.
新AS中是否还有其他方法(从命令行手动运行测试除外)为espresso测试添加额外的转轮参数?
编辑:
我在bug跟踪器上填写了一个问题:
android android-studio android-studio-2.2 android-studio-2.3
我有Coach
一个具有ScheduleEntity
对象集合的类;
public class Coach{
@ForeignCollectionField(columnName = FIELD_SCHEDULE_ENTITY)
private Collection<ScheduleEntity> scheduleEntities;
}
Run Code Online (Sandbox Code Playgroud)
[...]
public class ScheduleEntity {
@DatabaseField(columnName = FIELD_COACH, foreign = true)
private Coach coach;
}
Run Code Online (Sandbox Code Playgroud)
我想先找回ScheduleEntity
教练.
当我这样做时使用QueryBuilder
:
public ScheduleEntity getFirstScheduleForCoach(Coach coach) throws SQLException {
QueryBuilder<ScheduleEntity, Long> queryBuilder = scheduleEntityDao.queryBuilder();
queryBuilder
.where()
.eq(ScheduleEntity.FIELD_COACH, coach);
return scheduleEntityDao.queryForFirst(queryBuilder.prepare());
Run Code Online (Sandbox Code Playgroud)
一些奇怪的信息出现在logcat中:
Close cursor android.database.sqlite.SQLiteCursor@42321aa0 on null twice or more
Run Code Online (Sandbox Code Playgroud)
但是,当我以另一种方式这样做时:
return scheduleEntityDao.queryForEq(ScheduleEntity.FIELD_COACH, coach).iterator().next();
Run Code Online (Sandbox Code Playgroud)
一切都很好(不关心可能的nullpointer).
这些信息意味着什么?我做错了什么还是正常行为?
假设我们有这样的结构:
JSON:
{
"body": {
"cats": [
{
"cat": {
"id": 1,
"title": "cat1"
}
},
{
"cat": {
"id": 2,
"title": "cat2"
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
和相应的POJO:
Response.class
private final Body body;
Body.class
private final Collection<CatWrapper> cats
CatWrapper.class
private final Cat cat
Cat.class
private final int id;
private final String title;
Run Code Online (Sandbox Code Playgroud)
但是,现在我们说我们有相同的结构,但不是Cat
我们收到的truck
{
"body": {
"trucks": [
{
"truck": {
"id": 1,
"engine": "big",
"wheels": 12
}
},
{
"truck": {
"id": 2,
"engine": "super …
Run Code Online (Sandbox Code Playgroud)