【问题标题】:Android Studio - (zxing) W/CameraBase﹕ An error occurred while connecting to camera: 0Android Studio - (zxing) W/CameraBase﹕连接到相机时发生错误:0
【发布时间】:2016-02-12 09:38:23
【问题描述】:

有一个类似的问题,但我没有找到解决方案。我正在使用 Android Studio,所有手机都出现此错误。

我有一个应用程序正在使用相机扫描二维码。 该应用程序的工作方式是这样的,首先当我打开应用程序时,相机工作顺利,当它扫描 qrcode 时,它​​是扫描 qrcode 我看到结果在此之后的另一个活动有一个用于扫描另一个 qrcode 的按钮,此按钮用于在此预览活动点相机似乎是黑色的。

完全注销是;

02-12 11:23:11.387 25722-25722/? E/Zygote: MountEmulatedStorage()
02-12 11:23:11.387 25722-25722/? E/Zygote: v2
02-12 11:23:11.387 25722-25722/? I/libpersona: KNOX_SDCARD checking this for 10459
02-12 11:23:11.387 25722-25722/? I/libpersona: KNOX_SDCARD not a persona
02-12 11:23:11.412 25722-25722/? I/SELinux: Function: selinux_compare_spd_ram, SPD-policy is existed. and_ver=SEPF_SM-N9000Q_5.0 ver=27
02-12 11:23:11.412 25722-25722/? I/SELinux: Function: selinux_compare_spd_ram , priority [1] , priority version is VE=SEPF_SM-N9000Q_5.0_0027
02-12 11:23:11.417 25722-25722/? E/SELinux: [DEBUG] get_category: variable seinfo: default sensitivity: NULL, cateogry: NULL
02-12 11:23:11.417 25722-25722/? I/art: Late-enabling -Xcheck:jni
02-12 11:23:11.452 25722-25722/? D/TimaKeyStoreProvider: TimaSignature is unavailable
02-12 11:23:11.452 25722-25722/? D/ActivityThread: Added TimaKeyStore provider
02-12 11:23:11.497 25722-25722/com.molekul.cografiisaretler D/ResourcesManager: creating new AssetManager and set to /data/app/com.molekul.cografiisaretler-1/base.apk
02-12 11:23:11.697 25722-25722/com.molekul.cografiisaretler V/BitmapFactory: DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
02-12 11:23:11.717 25722-25722/com.molekul.cografiisaretler E/onCreate: onCreate
02-12 11:23:11.732 25722-25722/com.molekul.cografiisaretler D/Activity: performCreate Call secproduct feature valuefalse
02-12 11:23:11.732 25722-25722/com.molekul.cografiisaretler D/Activity: performCreate Call debug elastic valuetrue
02-12 11:23:11.787 25722-25798/com.molekul.cografiisaretler D/OpenGLRenderer: Render dirty regions requested: true
02-12 11:23:11.792 25722-25722/com.molekul.cografiisaretler D/Atlas: Validating map...
02-12 11:23:11.827 25722-25798/com.molekul.cografiisaretler I/OpenGLRenderer: Initialized EGL, version 1.4
02-12 11:23:11.837 25722-25798/com.molekul.cografiisaretler I/OpenGLRenderer: HWUI protection enabled for context ,  &this =0xaeb22088 ,&mEglDisplay = 1 , &mEglConfig = -1363909708 
02-12 11:23:11.857 25722-25798/com.molekul.cografiisaretler D/OpenGLRenderer: Enabling debug mode 0
02-12 11:23:12.572 25722-25722/com.molekul.cografiisaretler I/Choreographer: Skipped 45 frames!  The application may be doing too much work on its main thread.
02-12 11:23:13.137 25722-25722/com.molekul.cografiisaretler I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@1b9b925c time:14318576
02-12 11:23:16.747 25722-25722/com.molekul.cografiisaretler W/CameraBase: An error occurred while connecting to camera: 0
02-12 11:23:16.897 25722-25722/com.molekul.cografiisaretler I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@1b9b925c time:14322338
02-12 11:23:25.507 25722-25722/com.molekul.cografiisaretler E/SONUC: 18838813
02-12 11:23:25.507 25722-25722/com.molekul.cografiisaretler E/SONUC: UPC_E
02-12 11:23:25.507 25722-25722/com.molekul.cografiisaretler I/Timeline: Timeline: Activity_launch_request id:com.molekul.cografiisaretler time:14330949
02-12 11:23:25.547 25722-25722/com.molekul.cografiisaretler V/BitmapFactory: DecodeImagePath(decodeResourceStream3) : res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
02-12 11:23:25.552 25722-25722/com.molekul.cografiisaretler E/onCreate: onCreate
02-12 11:23:25.577 25722-25722/com.molekul.cografiisaretler V/BitmapFactory: DecodeImagePath(decodeResourceStream3) : res/drawable/cross64.png
02-12 11:23:25.582 25722-25722/com.molekul.cografiisaretler D/Activity: performCreate Call secproduct feature valuefalse
02-12 11:23:25.582 25722-25722/com.molekul.cografiisaretler D/Activity: performCreate Call debug elastic valuetrue
02-12 11:23:25.592 25722-25722/com.molekul.cografiisaretler W/CameraBase: An error occurred while connecting to camera: 0
02-12 11:23:26.077 25722-25722/com.molekul.cografiisaretler I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@342580a7 time:14331515
02-12 11:23:26.087 25722-25722/com.molekul.cografiisaretler V/ActivityThread: updateVisibility : ActivityRecord{2d9f8043 token=android.os.BinderProxy@1b9b925c {com.molekul.cografiisaretler/com.molekul.cografiisaretler.MainActivity}} show : false
02-12 11:23:26.632 25722-25722/com.molekul.cografiisaretler D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN
02-12 11:23:26.797 25722-25722/com.molekul.cografiisaretler I/Timeline: Timeline: Activity_launch_request id:com.molekul.cografiisaretler time:14332236
02-12 11:23:26.827 25722-25722/com.molekul.cografiisaretler E/onCreate: onCreate
02-12 11:23:26.827 25722-25722/com.molekul.cografiisaretler D/Activity: performCreate Call secproduct feature valuefalse
02-12 11:23:26.827 25722-25722/com.molekul.cografiisaretler D/Activity: performCreate Call debug elastic valuetrue
02-12 11:23:26.832 25722-25722/com.molekul.cografiisaretler W/CameraBase: An error occurred while connecting to camera: 0
02-12 11:23:26.962 25722-25798/com.molekul.cografiisaretler D/OpenGLRenderer: endAllStagingAnimators on 0x9c50ce00 (RippleDrawable) with handle 0xaeb17430
02-12 11:23:27.002 25722-25722/com.molekul.cografiisaretler I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@b3f84 time:14332441
02-12 11:23:27.387 25722-25722/com.molekul.cografiisaretler V/ActivityThread: updateVisibility : ActivityRecord{163c736d token=android.os.BinderProxy@342580a7 {com.molekul.cografiisaretler/com.molekul.cografiisaretler.informationActivity}} show : false

主要活动;

public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler{


    private ZXingScannerView mScannerView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.e("onCreate", "onCreate");
        mScannerView = new ZXingScannerView(this);
        setContentView(mScannerView);

    }

    @Override
    public void onResume() {
        super.onResume();

            mScannerView.setResultHandler(this);
            mScannerView.startCamera();

    }


    @Override
    public void handleResult(Result rawResult) {

        Log.e("SONUC", rawResult.getText());
        Log.e("SONUC", rawResult.getBarcodeFormat().toString());


        Intent intent = new Intent(MainActivity.this, informationActivity.class);
        startActivity(intent);

    }
}

信息活动;

public class informationActivity extends MainActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_information);


    }
    public void yenidenTara(View view){

        Intent intent = new Intent(informationActivity.this, MainActivity.class);
        startActivity(intent);

    }

}

【问题讨论】:

  • 打开/关闭Camera的代码在哪里?
  • 能分享一下Manifest文件吗
  • 我分享了清单文件@Ajinkya
  • 我修复了 MainActivity @Shark

标签: android camera zxing


【解决方案1】:

对不起!我的错,这是 MainActivity

 public class MainActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler{

        Integer response = 0 ;

        private ZXingScannerView mScannerView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Log.e("onCreate", "onCreate");
            mScannerView = new ZXingScannerView(this);
            setContentView(mScannerView);

        }

        @Override
        public void onResume() {
            super.onResume();

            if(response == 1) {
                mScannerView = null;
                mScannerView = new ZXingScannerView(this);
                setContentView(mScannerView);
                response = 0;

            }

                mScannerView.setResultHandler(this);
                mScannerView.startCamera();

        }

        @Override
        public void onDestroy() {
            super.onDestroy();

            mScannerView = null;
            mScannerView.stopCamera();

        }


        @Override
        public void handleResult(Result rawResult) {

            Log.e("SONUC", rawResult.getText());
            Log.e("SONUC", rawResult.getBarcodeFormat().toString());


            Intent intent = new Intent(MainActivity.this, informationActivity.class);
            startActivity(intent);

        }
    }

AndroidManifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.molekul.xx">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name="com.molekul.xx.informationActivity"
            android:label="@string/app_name"
            android:parentActivityName=".MainActivity">
        </activity>

    </application>

</manifest>

【讨论】:

    【解决方案2】:

    您应该确保您的应用请求/已启用此处提到的正确权限W/CameraBase﹕ An error occurred while connecting to camera: 0

    在我在 Settings>Apps>YourApp>Permissions 中启用权限之前,我遇到了同样的问题

    【讨论】:

      【解决方案3】:
      @Override
          public void onDestroy() {
              super.onDestroy();
      
              mScannerView = null;
              mScannerView.stopCamera();
      
          }
      

      首先将变量设为 null,然后尝试对其调用方法。它可能会导致 NullPointerException,并且也不能保证 stopCamera() 曾经被调用过。因此,对相机硬件的下一个请求可能会卡住,因为之前的客户端尚未释放相机。先尝试在不同地方切换通话

      【讨论】:

      • 那么你到底是什么意思。没看懂
      • CameraBase: An error occurred while connecting to camera: 0 通常意味着另一个进程占用了相机硬件。在您的情况下,可能在第一次使用相机之后您没有调用 stopCamera(),因为您在调用 stop() 之前将 mScannerView 设为 null。
      • 停止摄像头后应设置 mScannerView = null 否则会崩溃。
      猜你喜欢
      • 2015-07-11
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多