- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近升级了我的应用程序以使用 SKMaps 3.0.2,一切似乎都正常,除了当我的 Activity (“ViewLocationActivity”)调用扩展 android.support.v4.app.Fragment 的 fragment ( “NewMapFragment”)在后台重启一段时间后,调用 onStart() 方法,Fragment 无法膨胀 SKMapViewHolder 并崩溃。我附上了日志,但看起来这是因为声明的行
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.skobbler.ngx.map.SKMapViewStyle.getStyleFileName()' on a null object reference at com.skobbler.ngx.map.SKMapViewHolder.a(SourceFile:254)
这在以前的 SDK 版本中没有发生,特别奇怪,因为它不会在第一次加载 Fragment 时发生,而只会在随后的重启中,当调用 onStart() 时发生。
相关代码 fragment
@Override
public void onStart() // In ViewLocationActivity {
super.onStart();
Intent intent = new Intent(this, LocationService.class);
bindService(intent, mConnection, BIND_AUTO_CREATE);
}
public void onCreate(Bundle savedInstanceState) // in NewMapFragment {
super.onCreate(savedInstanceState);
Methods.initializeSKMaps(getActivity());
locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
registerLocationListener();
SKCurrentPositionProvider currentPositionProvider = new SKCurrentPositionProvider(getActivity());
currentPositionProvider.setCurrentPositionListener(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) // in NewMapFragment {
// App crashes in this line
mView = inflater.inflate(R.layout.fragment_new_map, container, false);
mapHolder = (SKMapViewHolder)mView.findViewById(R.id.map_surface_holder);
mapHolder.setMapSurfaceListener(this);
initializeControlButtons();
initializeBottomSheet();
return mView;
}
<!-- fragment_new_map -->
<android.support.design.widget.CoordinatorLayout
android:id="@+id/skobbler_map_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.skobbler.ngx.map.SKMapViewHolder
android:id="@+id/map_surface_holder"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<include layout="@layout/map_control_layout"
android:id="@+id/map_control_layout"/>
</android.support.design.widget.CoordinatorLayout>
日志:
01-23 20:40:51.548 19453-19453/com.shay.vagabond E/AndroidRuntime: FATAL EXCEPTION: main Process: com.shay.vagabond, PID: 19453 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.shay.vagabond/com.shay.vagabond.Activities.ViewLocationActivity}: android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class com.skobbler.ngx.map.SKMapViewHolder at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class com.skobbler.ngx.map.SKMapViewHolder Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class com.skobbler.ngx.map.SKMapViewHolder Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:430) at android.view.LayoutInflater.createView(LayoutInflater.java:645) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.inflate(LayoutInflater.java:518) at android.view.LayoutInflater.inflate(LayoutInflater.java:426) at com.shay.vagabond.Fragments.NewMapFragment.onCreateView(NewMapFragment.java:155) at android.support.v4.app.Fragment.performCreateView(Fragment.java:2087) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1113) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1277) at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2154) at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:201) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:603) at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:181) at com.shay.vagabond.Activities.ViewLocationActivity.onStart(ViewLocationActivity.java:691) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248) at android.app.Activity.performStart(Activity.java:6681) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2609) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.skobbler.ngx.map.SKMapViewStyle.getStyleFileName()' on a null object reference at com.skobbler.ngx.map.SKMapViewHolder.a(SourceFile:254) at com.skobbler.ngx.map.SKMapViewHolder.(SourceFile:159) at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:430) at android.view.LayoutInflater.createView(LayoutInflater.java:645) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.inflate(LayoutInflater.java:518) at android.view.LayoutInflater.inflate(LayoutInflater.java:426) at com.shay.vagabond.Fragments.NewMapFragment.onCreateView(NewMapFragment.java:155) at android.support.v4.app.Fragment.performCreateView(Fragment.java:2087) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1113) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1295) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1277) at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2154) at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:201) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:603) at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:181) at com.shay.vagabond.Activities.ViewLocationActivity.onStart(ViewLocationActivity.java:691) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248) at android.app.Activity.performStart(Activity.java:6681) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2609) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
最佳答案
我不知道这是否是一个理想的解决方案,但由于我没有得到关于 Skobbler SDK 中可能导致此行为的原因的答案,我设法通过简单地删除有问题的 fragment 来解决这个问题,它会膨胀并包含调用 onCreate() 时来自后台堆栈的 SKMapsViewHolder(如果进程被操作系统销毁则调用)。这会强制 Activity 重新初始化并重新创建 Fragment,这似乎可以解决问题。希望它在某些时候对某人有所帮助
private void initializeViews() {
// Setting the pre-arrival layout
setContentView(R.layout.view_location_layout);
initializeNavigationDrawer();
initializeBottomSheet();
initializeProgressBar();
removeAllFragments();
}
private void removeAllFragments() {
while (fragmentManager.getBackStackEntryCount() > 0)
fragmentManager.popBackStackImmediate();
}
关于android - Activity 的 OnStart() 中的 SKMaps Android 跟踪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41813991/
MMuzammil: MainActivity:in onCreate MMuzammil: FirstFragment:in onAttach MMuzammil: FirstFragment:in
使用WebRole.cs配置IIS时,建议调用base.OnStart()的方式是什么? public class WebRole : Microsoft.WindowsAzure.ServiceRu
我有一个 Ruby on Rails 应用程序,需要在 Azure 辅助角色中找到一个位置。 我目前使用批处理文件自动部署应用程序 - 该文件获取 apache 和 ruby 安装程序,运行它们,
我有一个 Ruby on Rails 应用程序,需要在 Azure 辅助角色中找到一个位置。 我目前使用批处理文件自动部署应用程序 - 该文件获取 apache 和 ruby 安装程序,运行它们,
我正在尝试实现一个非常简单的服务示例。用户通过 EditText 输入值并单击计算按钮。 Calculate 按钮触发一个服务,该服务执行一些计算并将结果发送回另一个 EditText 框。如果我使用
这个问题在这里已经有了答案: Android activity life cycle - what are all these methods for? (9 个回答) 关闭 9 年前。 关于Act
我已经阅读了关于 onResume() 和 onStart() 的文档,但我仍然不明白的一件事是 onResume() 在没有 onStart() 之前被调用? 最佳答案 请引用Android Act
我有这个 MainActivity,它会在我启动应用程序时启动,我知道只有这样 onCreate 才会被调用,然后 onStart 才会被调用。无论如何要知道是否调用了 onStart,而不先调用 o
我想节省countDownTimer开始工作的时间,有没有类似onStart()的方法? timeToDirectAnswer = new CountDownTimer(25000, 1000) {
我正在尝试了解 Android Activity 生命周期。为此,我创建了 Activity,其中覆盖了所有生命周期方法(onCreate、onStart、onRestart、onResume、onP
我是 android 开发的新手,我想为我的应用程序创建一个小部件。不幸的是我无法让它工作。我希望我的小部件启动服务。该服务应包含所有逻辑,例如根据内部存储文件的数据读取更新文本字段。我必须每分钟更新
我查看了关于堆栈溢出的另一个线程(来源:Difference between onCreate() and onStart()?)该线程将 onStart() 方法描述为“当 Activity 对用户
长话短说有没有人有任何例子说明 useAnimatedGestureHandler 的正确泛型是什么? 问题: 我正在关注 this Reanimated 2 手势动画教程。有这个例子: //...
在基于 NetBeans Platform 7.2 的应用程序中,可以用这段代码替换 ModuleInstall 类: import org.openide.modules.OnStart; impo
我正在.net 2.0 中编写 Windows 服务。 我应该在 OnStart() 内做什么如果出于某种原因我不希望我的服务启动的方法?我可以直接调用Stop()吗?基类的方法(ServiceBas
我的 Azure 解决方案中有一个简单的 WebRole 类: public class WebRole : RoleEntryPoint { public override bool OnS
当我启动 Play 服务器时,我只需要运行一些代码。使用 GlobalSettings.OnStart() 时,我注意到代码仅在对服务器的第一个 (http) 请求之后执行。知道如何在服务器启动后和发
这个问题在这里已经有了答案: Difference between onCreate() and onStart()? [duplicate] (2 个回答) 8年前关闭。 我一直想知道 onStar
我在 SwiftUI for MacOS 中使用 TapGesture。 TapGesture 仅在 TouchInsideOut 上被识别事件,当再次释放压力。我想在触地得分时调用一个 Action
在升级部署的情况下,OnStart 是否会从 WebRole.cs 调用? 最佳答案 http://msdn.microsoft.com/en-us/library/microsoft.windows
我是一名优秀的程序员,十分优秀!