Open ahmedshah1494 opened 7 years ago
Needs more info.
I am not sure what more information I could provide since I get this error in the layout preview as soon as I place the aforementioned xml in my content_main.xml file.
I am adding my code that uses CameraView, maybe that might help.
What is your device? What is the API level of that device?
This error appears in Preview in Android Studio (not an an actual device). Perhaps we could use View.isInEditMode() as Android Studio suggests?
Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE.
I am getting the following error trace when I try to place the CameraView in the content_main.xml file. My gradle settings are configured for APK 9-24. I am currently able to take images using the camera2 API but I wanted to switch to CameraView to avoid writing code for the old API as well.
<com.google.android.cameraview.CameraView android:id="@+id/camera" android:layout_width="10px" android:layout_height="10px" android:adjustViewBounds="true" app:autoFocus="true" app:aspectRatio="4:3" app:facing="back"/>
java.lang.UnsupportedOperationException: Unsupported Service: camera at com.android.layoutlib.bridge.android.BridgeContext.getSystemService(BridgeContext.java:602) at com.google.android.cameraview.Camera2.<init>(Camera2.java:191) at com.google.android.cameraview.CameraView.<init>(CameraView.java:102) at com.google.android.cameraview.CameraView.<init>(CameraView.java:85) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:465) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:172) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105) at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:186) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:334) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:345) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:245) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:861) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater_Delegate.parseInclude(LayoutInflater_Delegate.java:197) at android.view.LayoutInflater.parseInclude(LayoutInflater.java:902) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:854) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.inflate(LayoutInflater.java:518) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389) at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:548) at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:533) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966) at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533) at com.android.tools.idea.rendering.RenderTask.lambda$inflate$72(RenderTask.java:659) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
private View.OnClickListener mOnClickListener = new View.OnClickListener() { @Override public void onClick(View v) { if (mCameraView != null) { mCameraView.takePicture(); } } };
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); mCameraView = (CameraView) findViewById(R.id.camera); ... shootB.setOnClickListener(mOnClickListener);
`private CameraView.Callback mCallback = new CameraView.Callback() {This is the error log that I get when I try to take a photo
10-14 20:15:19.315 26409-26409/com.thesis.ahmed.datacollector E/AndroidRuntime: FATAL EXCEPTION: main Process: com.thesis.ahmed.datacollector, PID: 26409 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.camera2.CaptureRequest$Builder.set(android.hardware.camera2.CaptureRequest$Key, java.lang.Object)' on a null object reference at com.google.android.cameraview.Camera2.lockFocus(Camera2.java:547) at com.google.android.cameraview.Camera2.takePicture(Camera2.java:323) at com.google.android.cameraview.CameraView.takePicture(CameraView.java:376) at com.thesis.ahmed.datacollector.MainActivity$1.onClick(MainActivity.java:79) at android.view.View.performClick(View.java:4856) at android.view.View$PerformClick.run(View.java:19956) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:211) at android.app.ActivityThread.main(ActivityThread.java:5389) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)