GithubHelp home page GithubHelp logo

pqpo / smartcamera Goto Github PK

View Code? Open in Web Editor NEW
1.3K 28.0 216.0 252.29 MB

📷SmartCamera 是一个 Android 相机拓展库,能够实时采集并且识别相机内物体边框是否吻合指定区域。SmartCamera is an Android camera extension library,provides a scanning module that can recognizes whether the object's border inside the camera matches the area in real time.

Home Page: https://pqpo.me/2018/09/12/android-camera-real-time-scanning/

Java 99.58% CMake 0.05% C++ 0.36%

smartcamera's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smartcamera's Issues

camera识别成功的时候是否可以返回边框坐标

当库识别出对应的证件的四边形的区域的时候,是否可以获取边框上下左右四个坐标点,我需要裁掉图片中多余的留白。现在源代码好像只是识别到的时候,直接调用cameraview.takephoto()截图,谢谢!

定制识别物品

如果不是银行卡,身份证,别的矩形边框能不能自定义识别呢?

关于视频流后台处理的问题

问题2:后台处理与前端同步显示

  • 请问如何将后台处理的线程的结果与UI的绘制线程友好的链接起来
    比如:后台处理得到文档的四个顶点,如何将这些顶点坐标正确传给绘图层?blog中的
    processHandler.sendEmptyMessage(1);
    交给后台处理,这是并发性的,如何将处理结果同步显示到绘图?

问题1: 程序与blog的问题

首先感谢Android 端相机视频流采集与实时边框识别中提到的一些思路,奇怪的发现github中的程序并未使用blog中提到的策略,比如:SmartCameraView.java (49~69行)

private void init() {
        smartScanner = new SmartScanner();
        uiHandler = new ScanResultHandler(this);
        addCallback(new CameraImpl.Callback() {
            @Override
            public void onPicturePreview(CameraImpl camera, byte[] data) {
                super.onPicturePreview(camera, data);
                if (data == null || data.length == 0 || !scanning) {
                    return;
                }
                int previewRotation = getPreviewRotation();
                Size size = getPreviewSize();
                Rect revisedMaskRect = getAdjustPreviewMaskRect();
                if (revisedMaskRect != null && size != null) {
                    int result = smartScanner.previewScan(data, size.getWidth(), size.getHeight(), previewRotation, revisedMaskRect);
                    uiHandler.obtainMessage(result, data).sendToTarget();
                }
            }
        });
    }

这里没用到后台处理的操作吧?

裁剪出来的图片不是扫码框内的部分,无法正确演示效果

作者你好:demo裁剪出来的图片不是扫码框内的部分 是不是以下代码需要对原始数据进行方向判断并转换方向?麻烦了
@OverRide
public void onPictureTaken(CameraView cameraView, byte[] data) {
super.onPictureTaken(cameraView, data);
//TODO data的方向与预览的不一致
mCameraView.cropImage(data, new SmartCameraView.CropCallback() {
@OverRide
public void onCropped(Bitmap cropBitmap) {
if (cropBitmap != null) {
showPicture(cropBitmap);
}
}
});
}

NDK build r18 找不到 gnu-libstdc++/4.9/libs/x86/libgnustl_shared.so

org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':smartcameralib'.
at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:94)
at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:89)
at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:70)
at org.gradle.configuration.project.LifecycleProjectEvaluator.access$100(LifecycleProjectEvaluator.java:34)
at org.gradle.configuration.project.LifecycleProjectEvaluator$ConfigureProject.run(LifecycleProjectEvaluator.java:110)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50)
at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:666)
at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:135)
at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35)
at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:62)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38)
at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuild.run(DefaultGradleLauncher.java:249)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.initialization.DefaultGradleLauncher.configureBuild(DefaultGradleLauncher.java:167)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:126)
at org.gradle.initialization.DefaultGradleLauncher.getConfiguredBuild(DefaultGradleLauncher.java:104)
at org.gradle.internal.invocation.GradleBuildController$2.call(GradleBuildController.java:87)
at org.gradle.internal.invocation.GradleBuildController$2.call(GradleBuildController.java:84)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100)
at org.gradle.internal.invocation.GradleBuildController.configure(GradleBuildController.java:84)
at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:64)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$1.run(RunAsBuildOperationBuildActionRunner.java:43)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:57)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:32)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:69)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:30)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:45)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Expected NDK STL shared object file at /xxx/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_shared.so

java.lang.IllegalArgumentException: width and height must be > 0

image

09-17 17:22:48.563 4344-4344/? E/MultiWindowProxy: getServiceInstance failed!
09-17 17:22:49.717 4344-4425/me.pqpo.smartcamera E/OpenGLRenderer: PerfServiceNative_notifyRenderTime init fail!
09-17 17:22:50.224 4344-4443/me.pqpo.smartcamera E/AndroidRuntime: FATAL EXCEPTION: processThread
Process: me.pqpo.smartcamera, PID: 4344
java.lang.IllegalArgumentException: width and height must be > 0
at android.graphics.Bitmap.createBitmap(Bitmap.java:829)
at android.graphics.Bitmap.createBitmap(Bitmap.java:808)
at android.graphics.Bitmap.createBitmap(Bitmap.java:775)
at me.pqpo.smartcameralib.SmartScanner.preparePreviewBitmap(SmartScanner.java:124)
at me.pqpo.smartcameralib.SmartScanner.previewScan(SmartScanner.java:112)
at me.pqpo.smartcameralib.SmartCameraView$1.onPicturePreview(SmartCameraView.java:60)
at com.google.android.cameraview.CameraView$CallbackBridge.onPicturePreview(CameraView.java:470)
at com.google.android.cameraview.Camera1$2.handleMessage(Camera1.java:110)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.os.HandlerThread.run(HandlerThread.java:61)

FAILED: ../../../../build/intermediates/cmake/debug/obj/x86_64/libsmart_camera.so

你好,看之前的问题,找到一个x86文件夹下的so库,但是这里报错要x86_64下面的so库,我编译通不过了,这个有没有别的办法可以解决的?

Build command failed.
Error while executing process C:\Users\GAOKAI\AppData\Local\Android\Sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {--build D:\APP_android\GitHub\SmartCamera-master\smartcameralib.cxx\cmake\debug\armeabi-v7a --target smart_camera}
[1/1] Linking CXX shared library ........\build\intermediates\cmake\debug\obj\armeabi-v7a\libsmart_camera.so
FAILED: cmd.exe /C "cd . && C:\Users\GAOKAI\AppData\Local\Android\android-ndk-r21b\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi21 --gcc-toolchain=C:/Users/GAOKAI/AppData/Local/Android/android-ndk-r21b/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=C:/Users/GAOKAI/AppData/Local/Android/android-ndk-r21b/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -std=c++11 -frtti -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libgcc_real.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Wl,--no-undefined -Qunused-arguments -shared -Wl,-soname,libsmart_camera.so -o ........\build\intermediates\cmake\debug\obj\armeabi-v7a\libsmart_camera.so CMakeFiles/smart_camera.dir/src/main/cpp/android_utils.cpp.o CMakeFiles/smart_camera.dir/src/main/cpp/opencv_utils.cpp.o CMakeFiles/smart_camera.dir/src/main/cpp/smart_camera.cpp.o -LD:/APP_android/GitHub/SmartCamera-master/smartcameralib/opencv/lib/armeabi-v7a -LD:/APP_android/GitHub/SmartCamera-master/smartcameralib/opencv/3rdparty/armeabi-v7a -lopencv_imgproc -lopencv_core C:/Users/GAOKAI/AppData/Local/Android/android-ndk-r21b/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/arm-linux-androideabi/libz.a -ltegra_hal -ltbb -lcpufeatures -llog -ljnigraphics -latomic -lm && cd ."
bionic/libc/include/bits/fortify/unistd.h:174: error: undefined reference to '__write_chk'

bionic/libc/include/bits/fortify/unistd.h:174: error: undefined reference to '__write_chk'

clang++: error: linker command failed with exit code 1 (use -v to see invocation)

ninja: build stopped: subcommand failed.

SIMPLE: Error configuring

Android 3.3.1
NDK 19.1.5304403
LLDB 3.1.4508709
Platform-tools 28.0.23
Gradle 4.4.
Android Plugin version 3.1.4

我要怎么做?

您这两个项目我都没运行起来。

还有,你这个库我要怎么引用到自己的项目里?能简单说下吗?
单独导入您的lib module不行,试过了。

couldn’t find “libsmart_camera.so”

Process: cn.fundview.smartcropperdemo, PID: 24063
java.lang.RuntimeException: Unable to start activity ComponentInfo{cn.fundview.smartcropperdemo/cn.fundview.smartcropperdemo.MainActivity}: android.view.InflateException: Binary XML file line #6: Binary XML file line #6: Error inflating class me.pqpo.smartcameralib.SmartCameraView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2915)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2980)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1686)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6533)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:974)
Caused by: android.view.InflateException: Binary XML file line #6: Binary XML file line #6: Error inflating class me.pqpo.smartcameralib.SmartCameraView
Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class me.pqpo.smartcameralib.SmartCameraView
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 android.view.LayoutInflater.inflate(LayoutInflater.java:377)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at cn.fundview.smartcropperdemo.MainActivity.onCreate(MainActivity.java:29)
at android.app.Activity.performCreate(Activity.java:6710)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1122)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2868)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2980)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1686)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6533)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:974)
12-20 14:49:02.250 24063-24063/cn.fundview.smartcropperdemo E/AndroidRuntime: Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/cn.fundview.smartcropperdemo-2/base.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_dependencies_apk.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_0_apk.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_1_apk.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_2_apk.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_3_apk.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_4_apk.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_5_apk.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_6_apk.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_7_apk.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_8_apk.apk", zip file "/data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/cn.fundview.smartcropperdemo-2/lib/arm64, /data/app/cn.fundview.smartcropperdemo-2/base.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_dependencies_apk.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_0_apk.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_1_apk.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_2_apk.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_3_apk.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_4_apk.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_5_apk.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_6_apk.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_7_apk.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_8_apk.apk!/lib/arm64-v8a, /data/app/cn.fundview.smartcropperdemo-2/split_lib_slice_9_apk.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]] couldn't find "libsmart_camera.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:972)
at java.lang.System.loadLibrary(System.java:1530)
at me.pqpo.smartcameralib.SmartScanner.(SmartScanner.java:150)
at me.pqpo.smartcameralib.SmartCameraView.init(SmartCameraView.java:50)
at me.pqpo.smartcameralib.SmartCameraView.(SmartCameraView.java:45)
at me.pqpo.smartcameralib.SmartCameraView.(SmartCameraView.java:40)
... 25 more
下载了github上的项目 里面也没有so库

vivoY75和ZTE BA520扫描崩溃(不是必发,但是发生的频率挺高)

错误日志:
java.lang.IllegalArgumentException: width and height must be > 0
at android.graphics.Bitmap.createBitmap(Bitmap.java:877)
at android.graphics.Bitmap.createBitmap(Bitmap.java:856)
at android.graphics.Bitmap.createBitmap(Bitmap.java:823)
at me.pqpo.smartcameralib.SmartScanner.preparePreviewBitmap(SmartScanner.java:126)
at me.pqpo.smartcameralib.SmartScanner.previewScan(SmartScanner.java:114)
at me.pqpo.smartcameralib.SmartCameraView$ScanThread.run(SmartCameraView.java:205)

启动崩溃

无论是用提供的apk还是代码编译,都出现启动崩溃,换了不同手机同样出现。
log如下:
09-30 16:50:01.903 25961-25961/me.pqpo.smartcamera E/libc: Access denied finding property "camera.hal1.packagelist"
09-30 16:50:02.032 25961-25961/me.pqpo.smartcamera E/libc: Access denied finding property "camera.hal1.packagelist"
09-30 16:50:02.935 25961-26018/me.pqpo.smartcamera E/Camera-JNI: Callback buffer was too small! Expected 4147200 bytes, but got 28800 bytes!
Couldn't allocate byte array for JPEG data
09-30 16:50:02.948 25961-26264/me.pqpo.smartcamera E/cv::error(): OpenCV Error: Assertion failed (ssize.area() > 0) in void cv::resize(cv::InputArray, cv::OutputArray, cv::Size, double, double, int), file /hdd2/buildbot/slaves/slave_ardbeg1/50-SDK/opencv/modules/imgproc/src/imgwarp.cpp, line 1968
09-30 16:50:02.949 25961-26264/me.pqpo.smartcamera A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 26264 (processThread), pid 25961 (qpo.smartcamera)

AndroidQ打开相机出现异常

作者你好,这是我遇到得异常。
异常信息:java.lang.RuntimeException: java.io.IOException: setPreviewTexture failed
手机型号:pixel one
系统版本:AndroidQ

启动崩溃怎么回事

12-20 09:45:00.821 18489-18489/cn.fundview.agriculturemarket.debug E/AndroidRuntime: FATAL EXCEPTION: main
Process: cn.fundview.agriculturemarket.debug, PID: 18489
java.lang.RuntimeException: Unable to start activity ComponentInfo{cn.fundview.agriculturemarket.debug/cn.fundview.agriculturemarket.mvp.features.test.TestActivity}: android.view.InflateException: Binary XML file line #6: Binary XML file line #6: Error inflating class me.pqpo.smartcameralib.SmartCameraView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2915)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2980)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1686)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6533)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:974)
Caused by: android.view.InflateException: Binary XML file line #6: Binary XML file line #6: Error inflating class me.pqpo.smartcameralib.SmartCameraView
Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class me.pqpo.smartcameralib.SmartCameraView
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 android.view.LayoutInflater.inflate(LayoutInflater.java:377)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at cn.fundview.agriculturemarket.mvp.features.test.TestActivity.onCreate(TestActivity.java:30)
at android.app.Activity.performCreate(Activity.java:6710)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1122)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2868)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2980)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1686)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6533)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:974)
Caused by: android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class android.view.TextureView
Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class android.view.TextureView
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.onCreateView(LayoutInflater.java:700)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:68)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
12-20 09:45:00.823 18489-18489/cn.fundview.agriculturemarket.debug E/AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
at android.view.View.inflate(View.java:21380)
at com.google.android.cameraview.TextureViewPreview.(TextureViewPreview.java:38)
at com.google.android.cameraview.CameraView.(CameraView.java:107)
at me.pqpo.smartcameralib.SmartCameraView.(SmartCameraView.java:44)
at me.pqpo.smartcameralib.SmartCameraView.(SmartCameraView.java:40)
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 android.view.LayoutInflater.inflate(LayoutInflater.java:377)
at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
at cn.fundview.agriculturemarket.mvp.features.test.TestActivity.onCreate(TestActivity.java:30)
at android.app.Activity.performCreate(Activity.java:6710)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1122)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2868)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2980)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1686)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6533)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:974)
Caused by: java.lang.UnsupportedOperationException: TextureView doesn't support displaying a background drawable
at android.view.TextureView.setBackgroundDrawable(TextureView.java:307)
at android.view.View.setBackground(View.java:18606)
at android.view.View.(View.java:4661)
at android.view.View.(View.java:4170)
at android.view.View.(View.java:4149)
at android.view.TextureView.(TextureView.java:151)
... 42 more

不支持魅族机型

作者你好!我是在使用1.3.2的时候发现,魅族的机都会报这个错误
image
目前只发现魅族会出错(魅族15,魅族pro6s和魅蓝metal)

构建源代码的时候报错

  • What went wrong:
    Execution failed for task ‘:smartcameralib:externalNativeBuildDebug’.

Build command failed.
Error while executing process D:\android-sdk-windows\cmake\3.10.2.4988404\bin\cmake.exe with arguments {–build D:\AndroidStudioProjects\SmartCamera-master\smartcameralib.externalNativeBuild\cmake\debug\arm64-v8a –target smart_camera}
[1/1] Linking CXX shared library ........\build\intermediates\cmake\debug\obj\arm64-v8a\libsmart_camera.so
FAILED: ../../../../build/intermediates/cmake/debug/obj/arm64-v8a/libsmart_camera.so
cmd.exe /C “cd . && D:\android-sdk-windows\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe –target=aarch64-none-linux-android21 –gcc-toolchain=D:/android-sdk-windows/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64 –sysroot=D:/android-sdk-windows/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++11 -frtti -O0 -fno-limit-debug-info -Wl,–exclude-libs,libgcc_real.a -Wl,–exclude-libs,libatomic.a -static-libstdc++ -Wl,–build-id -Wl,–fatal-warnings -Wl,–no-undefined -Qunused-arguments -shared -Wl,-soname,libsmart_camera.so -o ........\build\intermediates\cmake\debug\obj\arm64-v8a\libsmart_camera.so CMakeFiles/smart_camera.dir/src/main/cpp/android_utils.cpp.o CMakeFiles/smart_camera.dir/src/main/cpp/opencv_utils.cpp.o CMakeFiles/smart_camera.dir/src/main/cpp/smart_camera.cpp.o -LD:/AndroidStudioProjects/SmartCamera-master/smartcameralib/opencv/lib/arm64-v8a -LD:/AndroidStudioProjects/SmartCamera-master/smartcameralib/opencv/3rdparty/arm64-v8a -lopencv_imgproc -lopencv_core D:/android-sdk-windows/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/aarch64-linux-android/libz.a -ltegra_hal -ltbb -lcpufeatures -llog -ljnigraphics -latomic -lm && cd .”
D:/android-sdk-windows/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/aarch64-linux-android/libz.a(gzwrite.o): In function write(int, void const*, unsigned long pass_object_size0)’: bionic/libc/include/bits/fortify/unistd.h:174: undefined reference to __write_chk’
bionic/libc/include/bits/fortify/unistd.h:174: undefined reference to `__write_chk’
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

部分机型上出现问题, onResume调用了start() startScan

java.lang.IllegalStateException: Camera is not ready. Call start() before takePicture().
at com.google.android.cameraview.CameraImpl.takePicture(CameraImpl.java:298)
at com.google.android.cameraview.CameraView.takePicture(CameraView.java:401)
at com.zwys.spfscan.page.ScanCameraActivity.onClick(ScanCameraActivity.java:155)
at com.zwys.spfscan.page.ScanCameraActivity_ViewBinding$2.doClick(ScanCameraActivity_ViewBinding.java:56)
at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:18)
at android.view.View.performClick(View.java:6659)
at android.view.View.performClickInternal(View.java:6631)
at android.view.View.access$3100(View.java:790)
at android.view.View$PerformClick.run(View.java:26187)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)

arm64-v8a架构编译不了

在opencv\lib\arm64-v8a目录下添加OpenCV 3.4.4版libopencv_core、libopencv_imgproc和libtbb库,编译还是报错。
Execution failed for task ':smartcameralib:externalNativeBuildDebug'.

Build command failed.
Error while executing process D:\Android\android-sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {--build D:\workspace\SmartCamera-master\smartcameralib.externalNativeBuild\cmake\debug\arm64-v8a --target smart_camera}
[1/1] Linking CXX shared library ........\build\intermediates\cmake\debug\obj\arm64-v8a\libsmart_camera.so
FAILED: cmd.exe /C "cd . && D:\Android\android-sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=aarch64-none-linux-android --gcc-toolchain=D:/Android/android-sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64 --sysroot=D:/Android/android-sdk/ndk-bundle/sysroot -fPIC -isystem D:/Android/android-sdk/ndk-bundle/sysroot/usr/include/aarch64-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -lz -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a --sysroot D:/Android/android-sdk/ndk-bundle/platforms/android-21/arch-arm64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libsmart_camera.so -o ........\build\intermediates\cmake\debug\obj\arm64-v8a\libsmart_camera.so CMakeFiles/smart_camera.dir/src/main/cpp/android_utils.cpp.o CMakeFiles/smart_camera.dir/src/main/cpp/opencv_utils.cpp.o CMakeFiles/smart_camera.dir/src/main/cpp/smart_camera.cpp.o ../../../../opencv/lib/arm64-v8a/libopencv_imgproc.a ../../../../opencv/lib/arm64-v8a/libopencv_core.a -llog -ljnigraphics -latomic -lm "D:/Android/android-sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libsupc++.a" "D:/Android/android-sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so" && cd ."
../../../../opencv/lib/arm64-v8a/libopencv_core.a(parallel.cpp.o): In function tbb::task_scheduler_init::~task_scheduler_init()': parallel.cpp:(.text._ZN3tbb19task_scheduler_initD2Ev[_ZN3tbb19task_scheduler_initD5Ev]+0x8): undefined reference to tbb::task_scheduler_init::terminate()'
../../../../opencv/lib/arm64-v8a/libopencv_core.a(parallel.cpp.o): In function tbb::interface7::internal::start_for<tbb::blocked_range<int>, (anonymous namespace)::ProxyLoopBody, tbb::auto_partitioner const>::execute()': parallel.cpp:(.text._ZN3tbb10interface78internal9start_forINS_13blocked_rangeIiEEN12_GLOBAL__N_113ProxyLoopBodyEKNS_16auto_partitionerEE7executeEv+0x84): undefined reference to tbb::internal::allocate_continuation_proxy::allocate(unsigned long) const'
parallel.cpp:(.text._ZN3tbb10interface78internal9start_forINS_13blocked_rangeIiEEN12_GLOBAL__N_113ProxyLoopBodyEKNS_16auto_partitionerEE7executeEv+0xac): undefined reference to tbb::internal::allocate_child_proxy::allocate(unsigned long) const' parallel.cpp:(.text._ZN3tbb10interface78internal9start_forINS_13blocked_rangeIiEEN12_GLOBAL__N_113ProxyLoopBodyEKNS_16auto_partitionerEE7executeEv+0x2e4): undefined reference to tbb::internal::allocate_continuation_proxy::allocate(unsigned long) const'
parallel.cpp:(.text._ZN3tbb10interface78internal9start_forINS_13blocked_rangeIiEEN12_GLOBAL__N_113ProxyLoopBodyEKNS_16auto_partitionerEE7executeEv+0x320): undefined reference to tbb::internal::allocate_child_proxy::allocate(unsigned long) const' parallel.cpp:(.text._ZN3tbb10interface78internal9start_forINS_13blocked_rangeIiEEN12_GLOBAL__N_113ProxyLoopBodyEKNS_16auto_partitionerEE7executeEv+0x3f0): undefined reference to tbb::task_group_context::is_group_execution_cancelled() const'
../../../../opencv/lib/arm64-v8a/libopencv_core.a(parallel.cpp.o): In function cv::parallel_for_(cv::Range const&, cv::ParallelLoopBody const&, double)': parallel.cpp:(.text._ZN2cv13parallel_for_ERKNS_5RangeERKNS_16ParallelLoopBodyEd+0xc4): undefined reference to tbb::task_group_context::init()'
parallel.cpp:(.text._ZN2cv13parallel_for_ERKNS_5RangeERKNS_16ParallelLoopBodyEd+0xd4): undefined reference to tbb::internal::allocate_root_with_context_proxy::allocate(unsigned long) const' parallel.cpp:(.text._ZN2cv13parallel_for_ERKNS_5RangeERKNS_16ParallelLoopBodyEd+0x11c): undefined reference to tbb::internal::get_initial_auto_partitioner_divisor()'
parallel.cpp:(.text._ZN2cv13parallel_for_ERKNS_5RangeERKNS_16ParallelLoopBodyEd+0x14c): undefined reference to tbb::task_group_context::~task_group_context()' parallel.cpp:(.text._ZN2cv13parallel_for_ERKNS_5RangeERKNS_16ParallelLoopBodyEd+0x170): undefined reference to tbb::task_group_context::~task_group_context()'
parallel.cpp:(.text._ZN2cv13parallel_for_ERKNS_5RangeERKNS_16ParallelLoopBodyEd+0x188): undefined reference to tbb::internal::allocate_root_with_context_proxy::free(tbb::task&) const' ../../../../opencv/lib/arm64-v8a/libopencv_core.a(parallel.cpp.o): In function cv::getNumThreads()':
parallel.cpp:(.text._ZN2cv13getNumThreadsEv+0x24): undefined reference to tbb::task_scheduler_init::default_num_threads()' ../../../../opencv/lib/arm64-v8a/libopencv_core.a(parallel.cpp.o): In function cv::setNumThreads(int)':
parallel.cpp:(.text._ZN2cv13setNumThreadsEi+0x28): undefined reference to tbb::task_scheduler_init::terminate()' parallel.cpp:(.text._ZN2cv13setNumThreadsEi+0x44): undefined reference to tbb::task_scheduler_init::initialize(int)'
../../../../opencv/lib/arm64-v8a/libopencv_core.a(parallel.cpp.o): In function _GLOBAL__sub_I_parallel.cpp': parallel.cpp:(.text.startup._GLOBAL__sub_I_parallel.cpp+0x20): undefined reference to tbb::task_scheduler_init::initialize(int, unsigned long)'
../../../../opencv/lib/arm64-v8a/libopencv_core.a(parallel.cpp.o):(.data.rel.ro._ZTIN3tbb10interface78internal9flag_taskE[_ZTIN3tbb10interface78internal9flag_taskE]+0x10): undefined reference to typeinfo for tbb::task' ../../../../opencv/lib/arm64-v8a/libopencv_core.a(parallel.cpp.o):(.data.rel.ro._ZTVN3tbb10interface78internal9flag_taskE[_ZTVN3tbb10interface78internal9flag_taskE]+0x28): undefined reference to tbb::task::note_affinity(unsigned short)'
../../../../opencv/lib/arm64-v8a/libopencv_core.a(parallel.cpp.o):(.data.rel.ro._ZTIN3tbb10interface78internal9start_forINS_13blocked_rangeIiEEN12_GLOBAL__N_113ProxyLoopBodyEKNS_16auto_partitionerEEE+0x10): undefined reference to `typeinfo for tbb::task'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

Android 4.1.2 运行崩溃

E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{me.pqpo.scan/me.pqpo.scan.MainActivity}: android.view.InflateException: Binary XML file line #10: Error inflating class me.pqpo.smartcameralib.SmartCameraView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2127)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2152)
at android.app.ActivityThread.access$700(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4944)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1043)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #10: Error inflating class me.pqpo.smartcameralib.SmartCameraView
at android.view.LayoutInflater.createView(LayoutInflater.java:619)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:693)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at me.pqpo.scan.MainActivity.onCreate(MainActivity.java:61)
at android.app.Activity.performCreate(Activity.java:5185)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2091)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2152) 
at android.app.ActivityThread.access$700(ActivityThread.java:144) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4944) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1043) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:593)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:693) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:752) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
at me.pqpo.scan.MainActivity.onCreate(MainActivity.java:61) 
at android.app.Activity.performCreate(Activity.java:5185) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2091) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2152) 
at android.app.ActivityThread.access$700(ActivityThread.java:144) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4944) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1043) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.ExceptionInInitializerError
at me.pqpo.smartcameralib.SmartCameraView.init(SmartCameraView.java:50)
at me.pqpo.smartcameralib.SmartCameraView.(SmartCameraView.java:45)
at me.pqpo.smartcameralib.SmartCameraView.(SmartCameraView.java:40)
at java.lang.reflect.Constructor.constructNative(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
at android.view.LayoutInflater.createView(LayoutInflater.java:593) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:693) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:752) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
at me.pqpo.scan.MainActivity.onCreate(MainActivity.java:61) 
at android.app.Activity.performCreate(Activity.java:5185) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2091) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2152) 
at android.app.ActivityThread.access$700(ActivityThread.java:144) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4944) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1043) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1891]: 102 could not load needed library 'libgnustl_shared.so' for 'libsmart_camera.so' (load_library[1093]: Library 'libgnustl_shared.so' not found)
at java.lang.Runtime.loadLibrary(Runtime.java:370)
at java.lang.System.loadLibrary(System.java:535)
at me.pqpo.smartcameralib.SmartScanner.(SmartScanner.java:150)
at me.pqpo.smartcameralib.SmartCameraView.init(SmartCameraView.java:50) 
at me.pqpo.smartcameralib.SmartCameraView.(SmartCameraView.java:45) 
at me.pqpo.smartcameralib.SmartCameraView.(SmartCameraView.java:40) 
at java.lang.reflect.Constructor.constructNative(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
at android.view.LayoutInflater.createView(LayoutInflater.java:593) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:693) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:752) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
at android.support.v7.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
at me.pqpo.scan.MainActivity.onCreate(MainActivity.java:61) 
at android.app.Activity.performCreate(Activity.java:5185) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2091) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2152) 
at android.app.ActivityThread.access$700(ActivityThread.java:144) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1258) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4944) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1043) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810) 
at dalvik.system.NativeStart.main(Native Method) 

没有导入源码,是新建工程,用添加依赖的方式引用你的库。
在 Android 8.0上正常。
在Android 4.1.2 和 4.2 上启动崩溃。报以上错误。

请指教该如何处理.

TextureView doesn't support displaying a background drawable

布局中尝试android:background="@null"
代码中添加@OverRide
public void setBackgroundDrawable(Drawable background) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N && background != null) {
setBackgroundDrawable(background);
}
}
建议作者在源码中添加上,不然引入依赖后再android 7.0 以上的机械上崩溃

sending message to a Handler on a dead thread

java.lang.IllegalStateException: Handler (com.google.android.cameraview.CameraImpl$2) {c7663c0} sending message to a Handler on a dead thread
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:545)
at android.os.Handler.enqueueMessage(Handler.java:661)
at android.os.Handler.sendMessageAtTime(Handler.java:630)
at android.os.Handler.sendMessageDelayed(Handler.java:600)
at android.os.Handler.sendEmptyMessageDelayed(Handler.java:564)
at android.os.Handler.sendEmptyMessage(Handler.java:549)
at com.google.android.cameraview.CameraImpl$3.onPreviewFrame(CameraImpl.java:140)
at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1262)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6710)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)

在预览的时候调用 mCameraView.cropJpegImage 不能执行

mCameraView.setOnScanResultListener(new SmartCameraView.OnScanResultListener() {
@OverRide
public boolean onScanResult(SmartCameraView smartCameraView, int result, byte[] data) {
// Bitmap previewBitmap = smartCameraView.getPreviewBitmap();
if (result == 1) {
LogUtils.i("onScanResult()--->>>");
mCameraView.cropJpegImage ....
return true;
}
return false;
}
});

java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
at android.graphics.Bitmap.createBitmap(Bitmap.java:802)
at android.graphics.Bitmap.createBitmap(Bitmap.java:769)
at me.pqpo.smartcameralib.SmartCameraView$2.run(SmartCameraView.java:168)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.