如何使用Kotlin Android扩展程序Fragment?如果我在里面使用它们onCreateView(),我得到这个NullPointerException例外:
引起:java.lang.NullPointerException:尝试在空对象引用上调用虚方法'android.view.View android.view.View.findViewById(int)'
这是片段代码:
package com.obaied.testrun.Fragment
import android.os.Bundle
import android.support.v4.app.Fragment
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.obaied.acaan.R
import kotlinx.android.synthetic.main.fragment_card_selector.*
public class CardSelectorFragment : Fragment() {
val TAG = javaClass.canonicalName
companion object {
fun newInstance(): CardSelectorFragment {
return CardSelectorFragment()
}
}
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
var rootView = inflater?.inflate(R.layout.fragment_card_selector, container, false)
btn_K.setOnClickListener { Log.d(TAG, "onViewCreated(): hello world"); }
return rootView
}
}
`
Run Code Online (Sandbox Code Playgroud) 我的应用程序崩溃了.它发生在很多用户及其在ActivityThread.java方法reportSizeConfigurations中的多个位置.我不知道这是用来做什么的,为什么它会冻结.
冻结发生在启动屏幕(主活动启动后)之后,仅在升级应用程序时发生.如果重新安装该应用程序,问题就会消失.问题是,我不能告诉所有用户重新安装应用程序...
有谁知道可能导致这种情况的原因和原因?似乎可能与某些数据库处理有关,但这只是猜测.
来自Crashlytics的堆栈跟踪:
Fatal Exception: java.lang.IllegalArgumentException: reportSizeConfigurations: ActivityRecord not found for: Token{a28a055 null}
at android.os.Parcel.readException(Parcel.java:1697)
at android.os.Parcel.readException(Parcel.java:1646)
at android.app.ActivityManagerProxy.reportSizeConfigurations(ActivityManagerNative.java:8342)
at android.app.ActivityThread.reportSizeConfigurations(ActivityThread.java:3049)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2992)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Run Code Online (Sandbox Code Playgroud)
来自Play商店'ANRs&crashes'的堆栈跟踪:
"main" prio=5 tid=1 TimedWaiting
| group="main" sCount=1 dsCount=0 obj=0x74864f70 self=0x7f8b896a00
| sysTid=28578 nice=0 cgrp=default sched=0/0 handle=0x7f8f832a98
| state=S schedstat=( 237746089 66838748 1069 ) utm=18 stm=5 core=6 HZ=100
| stack=0x7fcdbf9000-0x7fcdbfb000 stackSize=8MB
| held mutexes=
at java.lang.Object.wait! (Native method)
- waiting …Run Code Online (Sandbox Code Playgroud) 我有一个活动,持有并显示多个片段.
当我重新输入片段时,它会自动填充所有editTexts中的文本.所有字段的文本也相同.
例:
打开片段并在两个editTexts中填写文本:
CustomEditText1:[______]
CustomEditText2:[_ acb__]
CustomEditText3:[_ qwe__]
单击后退按钮并重新输入片段
CustomEditText1:[_ qwe__]
CustomEditText2:[_ qwe__]
CustomEditText3:[_ qwe__]
这是我在片段中覆盖的方法:
public AddBookingFragment() {
// Required empty public constructor
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
tabsActivity = (TabsActivity) getActivity();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_add_booking, container, false);
lastNameEditText = (NASEditText) view.findViewById(R.id.nas_add_booking_last_name);
pnrEditText = (NASEditText) view.findViewById(R.id.nas_add_booking_pnr);
addButton = (NASButton) view.findViewById(R.id.nas_add_booking_add_button);
scanButton = (NASButton) view.findViewById(R.id.nas_add_booking_scan_button);
confirmationBox = (LinearLayout) view.findViewById(R.id.nas_add_booking_confirmation_box);
confirmationText = (NASHeaderAndSubtext) view.findViewById(R.id.nas_add_booking_confirmation_text);
confirmationBox.setVisibility(View.GONE);
bindButtons(); …Run Code Online (Sandbox Code Playgroud) android android-edittext android-fragments android-activity android-savedstate
我正在记录结构中的崩溃错误.它适用于崩溃和自动生成的非致命因素.但是当我尝试手动记录非致命因素时,它根本没有显示出来.可能是什么问题?(是的,我在记录后重新打开了应用程序).
我尝试过的日志记录方法:
Crashlytics.log(message);
Crashlytics.getInstance().core.logException(exception); //Caught exception
Crashlytics.logException(exception); //Caught exception
Crashlytics.logException(new Throwable(message));
Run Code Online (Sandbox Code Playgroud)
它们都没有出现在我的面料仪表板中......
我用这个实例化Fabric并且它的日志记录崩溃了,所以我认为这不是问题所在.
Fabric.with(this, new Crashlytics());
Run Code Online (Sandbox Code Playgroud) 我正在为他们的应用程序的航空公司工作.我们已经在Apple Watch上发布了这个应用程序,但是有一个很大的问题:用于通过安全性和登机的QR码的扫描仪正在从底部向上扫描......
这意味着您无法使用手表应用程序,因为当您转动手腕时,手表将进入黑色睡眠模式.
有没有办法暂时关闭这个视图?我听说过可以在WatchOS 4中禁用它的谣言,但无法知道如何.
谢谢您的帮助!:)
我最近接手了一个Ionic项目,并致力于使其工作。该项目在设备上运行,但是我正在尝试使其也能在浏览器中工作。
我已将插件和依赖项更新到最新版本,但现在我陷在Chrome控制台中一个奇怪的javascript错误中。出现此错误后,设备上的应用程序在弹出屏幕后也只是白色。我猜这是相同的javascript错误。
然后,按照这个答案,我摆脱了错误,但是有了一个新的错误,我终生无法解决。找不到任何有相同问题的人。
这是我在运行“离子服务”时在控制台中看到的内容:
如果您知道会导致这种情况的原因,请提供帮助!如何摆脱这个错误,让应用程序运行?
编辑:我认为也许可以与app.module代码有关:
import { NgModule } from '@angular/core';
import { IonicApp, IonicModule } from 'ionic-angular';
import { IonicStorageModule } from '@ionic/storage';
import { LongPress } from '../components/long-press/long-press';
import { MyApp } from './app.components';
import { BrowserModule } from '@angular/platform-browser';
import { AboutPage } from '../pages/about/about';
import { AddSkypeUserPage } from '../pages/add-skype-user/add-skype-user';
import { ContactPage } from '../pages/contact/contact';
import { DagsVisningPage } from '../pages/dags-visning/dags-visning';
import { HomePage } from '../pages/home/home';
import { InnstillingerPage } …Run Code Online (Sandbox Code Playgroud) android ×4
crashlytics ×2
angular ×1
apple-watch ×1
cordova ×1
crash ×1
exception ×1
ios ×1
javascript ×1
kotlin ×1
swift ×1
watchkit ×1
watchos-4 ×1