我查看了Google LatinIME.然后我将java文件夹导入Android Studio.
我运行它,设置它(我在手机设置中选择了一个键盘,我选择了语言布局)但是在测试期间(通过关注edittext)application崩溃时出现错误:
android.view.InflateException:二进制XML文件行#29:二进制XML文件行#21:错误充气类com.android.inputmethod.keyboard.emoji.EmojiPalettesView
这是完整的StackTrace:
致命异常:主要进程:com.android.inputmethod.latin,PID:19332 android.view.InflateException:二进制XML文件行#29:二进制XML文件行#21:错误导致类com.android.inputmethod.keyboard.emoji. EmojiPalettes在android.view.LayoutInflater.inflate(LayoutInflater.java:539)的android.view.LayoutInflater.inflate(LayoutInflater.java:423)中的android.view.LayoutInflater.inflate(LayoutInflater.java:374)的com.android .inputmethod.keyboard.KeyboardSwitcher.onCreateInputView(KeyboardSwitcher.java:464)位于android.inputmethodservice.InputMethodService.updateInputViewShown(InputMethodService.java:1117)的com.android.inputmethod.latin.LatinIME.onCreateInputView(LatinIME.java:752) android.inputmethodservice.InputMethodService.showWindowInner(InputMethodService.java:1473)在android.inputmethodservice.InputMethodService.showWindow(InputMethodService.java:1447)的android.inputmethodservice.InputMethodService $ InputMethodImpl.showSoftInput(InputMethodService.java:437)at at android.inputmethodservice.IInputMethodWrapper.executeMessage(IInputMethodWrapper.java:203)位于android.os.Handler.dispatchMessage(Handler.java:102)的com.android.internal.os.HandlerCaller $ MyHandler.handleMessage(HandlerCaller.java:37)在android.os.Looper.loop(Looper.java:148)的android.app.ActivityThread.main(ActivityThread.java:5551),位于com.android.internal的java.lang.reflect.Method.invoke(Native Method) .os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:730)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)引起:android.view.InflateException:二进制XML文件行#21:在android.view.LayoutInflater的android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)的android.view.LayoutInflater.createView(LayoutInflater.java:645)中输入com.android.inputmethod.keyboard.emoji.EmojiPalettesView类错误.parseInclude(LayoutInflater.java:941)位于android.view.LayoutInflater.rInflateCh的android.view.LayoutInflater.rInflate(LayoutInflater.java:831)位于android.view.LayoutInflater.inflate(LayoutInflater.java:423)的android.view.LayoutInflater.inflate(LayoutInflater.java:514)的android.view.LayoutInflater.inflate(LayoutInflater.java)中的ildren(LayoutInflater.java:798) :374)at com.android.inputmethod.keyboard.KeyboardSwitcher.onCreateInputView(KeyboardSwitcher.java:464)
问题: 帮帮我,我做错了什么?
我尝试播放一些视频。但是一旦我重现第一个视频就会出现错误:
java.lang.RuntimeException:无法启动活动 ComponentInfo{cpm.example.advplayer/com.example.advplayer.ui.MainActivity}:java.lang.IllegalArgumentException:surfaceTexture 不能为 null
我在playerSetup()方法中写:
public void playerSetup(Video video) {
try {
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(Application.video_path + video.getName());
mMediaPlayer.setSurface(new Surface(savedSurfaceTexture));
mMediaPlayer.prepare();
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
adjustAspectRatio(mMediaPlayer.getVideoWidth(), mMediaPlayer.getVideoHeight());
mMediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
和
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i1) {
savedSurfaceTexture = surfaceTexture;
}
Run Code Online (Sandbox Code Playgroud)
在onSurfaceTextureAvailable()覆盖方法中
如何做到这一点,您可以播放视频并且TextureView不会为空?
问题是,在这之前,我实现了interfaces在Activity,值中设置的方法Fragment。也就是在onAttach()初始化之后,再在哪里调用interface被调用的方法。例子:
interface OnNumberChangeCallback{
void onSuccess();
}
Run Code Online (Sandbox Code Playgroud)
在Fragment:
OnNumberChangeCallback onNumberChangeCallback;
onAttach(Context context){
onNumberChangeCallback = (OnNumberChangeCallback) context;
}
Run Code Online (Sandbox Code Playgroud)
等等。
我想初始化interfacein BaseActivity。并在Fragment实现这一点interface。当我尝试以onCreate这种方式在方法中初始化时:
onNumberChangeCallback = (OnNumberChangeCallback) this;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
BaseActivity cannot be cast to OnNumberChangeCallback
Run Code Online (Sandbox Code Playgroud)
问题:如何正确初始化interfacein Activity?