System.LoadLibrary(libname) 在 Javacv 代码中的 Nvidia Tegra 2 芯片组 (Android Samsung Tab) 上崩溃

2024-07-01

我在 Android 中使用了一个自定义相机Javacv代码 https://code.google.com/p/javacv/。 我没有包含所有 .so 文件,而仅包含我的应用程序似乎需要的那些文件。 如下面的屏幕截图所示:

它在三星 Galaxy S2、S3 和索尼爱立信 Xperia Arc 上运行良好。 完全没问题。但是当我尝试在 Samsung P7500 Galaxy Tab 10.1 上运行它时,它在我使用的 Javacv 代码的第一行崩溃了,恰好是:

yuvIplImage = IplImage.create(previewWidth, previewHeight,  IPL_DEPTH_8U, 2);

此尝试的 Logcat 输出:

07-08 13:30:13.930: I/ActivityManager(192): START {intent.toShortString} from pid 7836
07-08 13:30:14.000: I/ActivityManager(192): Start proc app.processName for activity hostingNameStr: pid=7847 uid=10001 gids={1006, 3003, 1015, 1023}
07-08 13:30:14.190: D/NvOsDebugPrintf(116): GetParameter(): 37 not supported
07-08 13:30:14.190: E/NvOmxCameraSettingsParser(116): Param type 71 not supported
07-08 13:30:14.240: W/dalvikvm(7847): VFY: unable to resolve virtual method 18783: Ljava/awt/image/BufferedImage;.getSampleModel ()Ljava/awt/image/SampleModel;
07-08 13:30:14.250: D/dalvikvm(7847): VFY: replacing opcode 0x22 at 0x0007
07-08 13:30:14.250: W/dalvikvm(7847): VFY: unable to resolve virtual method 18783: Ljava/awt/image/BufferedImage;.getSampleModel ()Ljava/awt/image/SampleModel;
07-08 13:30:14.250: D/dalvikvm(7847): VFY: replacing opcode 0x74 at 0x000f
07-08 13:30:14.250: W/dalvikvm(7847): VFY: unable to resolve instance field 5673
07-08 13:30:14.250: D/dalvikvm(7847): VFY: replacing opcode 0x22 at 0x0007
07-08 13:30:14.250: W/dalvikvm(7847): VFY: unable to resolve virtual method 18783: Ljava/awt/image/BufferedImage;.getSampleModel ()Ljava/awt/image/SampleModel;
07-08 13:30:14.250: D/dalvikvm(7847): VFY: replacing opcode 0x74 at 0x0011
07-08 13:30:14.250: W/dalvikvm(7847): VFY: unable to resolve instance field 5673
07-08 13:30:14.250: D/dalvikvm(7847): VFY: replacing opcode 0x52 at 0x007f
07-08 13:30:14.260: W/dalvikvm(7847): VFY: unable to resolve static method 18764: Ljava/awt/color/ColorSpace;.getInstance (I)Ljava/awt/color/ColorSpace;
07-08 13:30:14.260: D/dalvikvm(7847): VFY: replacing opcode 0x71 at 0x0033
07-08 13:30:14.260: D/dalvikvm(7847): VFY: replacing opcode 0x1f at 0x00b7
07-08 13:30:14.260: W/dalvikvm(7847): VFY: unable to resolve static method 18764: Ljava/awt/color/ColorSpace;.getInstance (I)Ljava/awt/color/ColorSpace;
07-08 13:30:14.260: D/dalvikvm(7847): VFY: replacing opcode 0x71 at 0x00c6
07-08 13:30:14.260: W/dalvikvm(7847): VFY: unable to resolve static method 18764: Ljava/awt/color/ColorSpace;.getInstance (I)Ljava/awt/color/ColorSpace;
07-08 13:30:14.260: D/dalvikvm(7847): VFY: replacing opcode 0x71 at 0x00de
07-08 13:30:14.260: D/dalvikvm(7847): VFY: replacing opcode 0x22 at 0x0077
07-08 13:30:14.260: D/dalvikvm(7847): DexOpt: unable to opt direct call 0x4957 at 0x2d in Lcom/googlecode/javacv/cpp/opencv_core$IplImage;.cloneBufferedImage
07-08 13:30:14.260: D/dalvikvm(7847): DexOpt: unable to opt direct call 0x4957 at 0x18 in Lcom/googlecode/javacv/cpp/opencv_core$IplImage;.getBufferedImage
07-08 13:30:14.260: D/dalvikvm(7847): DexOpt: unable to opt direct call 0x4958 at 0x7d in Lcom/googlecode/javacv/cpp/opencv_core$IplImage;.getBufferedImage
07-08 13:30:14.270: D/dalvikvm(7847): DexOpt: unable to opt direct call 0x4965 at 0x167 in Lcom/googlecode/javacv/cpp/opencv_core$IplImage;.getBufferedImage
07-08 13:30:14.270: D/dalvikvm(7847): DexOpt: unable to opt direct call 0x4966 at 0x17f in Lcom/googlecode/javacv/cpp/opencv_core$IplImage;.getBufferedImage
07-08 13:30:14.820: I/DEBUG(1925): Build fingerprint: 'samsung/GT-P7500/GT-P7500:4.0.4/IMM76D/XWLP5:user/release-keys'
07-08 13:30:14.820: I/DEBUG(1925): pid: 7847, tid: 7847  >>> com.javacv.recorder <<<
07-08 13:30:14.820: I/DEBUG(1925):  r0 5be58ce7  r1 00000008  r2 5be58ce8  r3 000270b4
07-08 13:30:14.820: I/DEBUG(1925):  r4 5be7fc00  r5 00000008  r6 00000004  r7 000040f1
07-08 13:30:14.820: I/DEBUG(1925):  ip 00000000  sp beb570e0  lr b0003a43  pc 5be58cec  cpsr 00000010
07-08 13:30:14.820: I/DEBUG(1925):  d2  46fffe0000000000  d3  46fffe00c7000000
07-08 13:30:14.820: I/DEBUG(1925):  d6  4252000000000000  d7  3eaaaaab3f800000
07-08 13:30:14.930: I/DEBUG(1925): 5be58ccc e1a00006 eb004a45 eb004b9b 0002745c  ....EJ...K..\t..
07-08 13:30:14.930: I/DEBUG(1925): 5be58cec f2c00010 e79f3003 f443078f e12fff1e  .....0....C.../.
07-08 13:30:14.930: I/DEBUG(1925): 5be58cfc 000270b4 e59f300c e79f3003 e2833008  .p...0...0...0..
07-08 13:30:14.930: I/DEBUG(1925): 5be58d0c e5803000 e12fff1e 000270a4 e12fff1e  .0..../..p..../.
07-08 13:30:14.930: I/DEBUG(1925): b0003a40 3d014790 dcf62d00 bf00bd70 4c05b510  .G.=.-..p......L
07-08 13:30:14.930: I/DEBUG(1925): b0003a50 447c2001 f00160e0 2300ffb1 f00160e3  . |D.`.....#.`..
07-08 13:30:14.930: I/DEBUG(1925): 5be46000-5be7d000 /data/data/com.javacv.recorder/lib/libtbb.so
07-08 13:30:14.930: I/DEBUG(1925): 5be7d000-5be7e000 
07-08 13:30:14.930: I/DEBUG(1925):     beb570a0  b00094f0  /system/bin/linker
07-08 13:30:14.930: I/DEBUG(1925):     beb570a4  b0009f60  /system/bin/linker
07-08 13:30:14.930: I/DEBUG(1925):     beb570a8  00000413  
07-08 13:30:14.930: I/DEBUG(1925):     beb570ac  5be52a70  /data/data/com.javacv.recorder/lib/libtbb.so
07-08 13:30:14.930: I/DEBUG(1925):     beb570b0  b0009934  /system/bin/linker
07-08 13:30:14.930: I/DEBUG(1925):     beb570b4  5be46114  /data/data/com.javacv.recorder/lib/libtbb.so
07-08 13:30:14.930: I/DEBUG(1925):     beb570b8  b001c88c  
07-08 13:30:14.930: I/DEBUG(1925):     beb570bc  b00094fc  /system/bin/linker
07-08 13:30:14.930: I/DEBUG(1925):     beb570c0  b000ebf0  
07-08 13:30:14.930: I/DEBUG(1925):     beb570c4  00000000  
07-08 13:30:14.930: I/DEBUG(1925):     beb570c8  b001b868  
07-08 13:30:14.930: I/DEBUG(1925):     beb570cc  5be81000  
07-08 13:30:14.930: I/DEBUG(1925):     beb570d0  0003f000  
07-08 13:30:14.930: I/DEBUG(1925):     beb570d4  b00040d9  /system/bin/linker
07-08 13:30:14.930: I/DEBUG(1925):     beb570d8  df0027ad  
07-08 13:30:14.930: I/DEBUG(1925):     beb570dc  00000000  
07-08 13:30:14.930: I/DEBUG(1925): #00 beb570e0  b000ebf0  
07-08 13:30:14.930: I/DEBUG(1925):     beb570e4  5be7fccc  /data/data/com.javacv.recorder/lib/libtbb.so
07-08 13:30:14.930: I/DEBUG(1925):     beb570e8  00000031  
07-08 13:30:14.930: I/DEBUG(1925):     beb570ec  b0004627  /system/bin/linker
07-08 13:30:14.930: I/DEBUG(1925):     beb570f0  00000000  
07-08 13:30:14.930: I/DEBUG(1925):     beb570f4  00000000  
07-08 13:30:14.930: I/DEBUG(1925):     beb570f8  0003f0f1  
07-08 13:30:14.930: I/DEBUG(1925):     beb570fc  b0003be7  /system/bin/linker
07-08 13:30:14.930: I/DEBUG(1925):     beb57100  b0006cbc  /system/bin/linker
07-08 13:30:14.930: I/DEBUG(1925):     beb57104  b0006bcc  /system/bin/linker
07-08 13:30:14.930: I/DEBUG(1925):     beb57108  00000000  
07-08 13:30:14.930: I/DEBUG(1925):     beb5710c  b000ebf0  
07-08 13:30:14.930: I/DEBUG(1925):     beb57110  b001b97c  
07-08 13:30:14.930: I/DEBUG(1925):     beb57114  00000031  
07-08 13:30:14.930: I/DEBUG(1925):     beb57118  000040f1  
07-08 13:30:14.930: I/DEBUG(1925):     beb5711c  b001b868  
07-08 13:30:14.930: I/DEBUG(1925):     beb57120  5be81000  
07-08 13:30:14.930: I/DEBUG(1925):     beb57124  0003f000  
07-08 13:30:16.230: I/DEBUG(1925): !@dumpstate -k -t -n -z -d -o /data/log/dumpstate_app_native -m 7847
07-08 13:30:23.850: D/Zygote(114): Process 7847 terminated by signal (4)
07-08 13:30:23.850: I/ActivityManager(192): Process app.processName (pid 7847) (adj 0) has died.

我的超级英雄“PID 7847 先生”死了:(

从这个日志我可以很容易地解释应用程序正在尝试链接到 libtbb.so 但不知道出了什么问题。

我将源代码附加到 javacv jar 但仍然没有线索。 然后我删除了这些 jar 并将代码包含在我的项目中以及所需的 jar 中,如下面的屏幕截图所示:

使用断点我发现应用程序崩溃了

com.googlecode.javacpp.Loader.loadLibrary() method's line 
              System.loadLibrary(libname);

在 logcat 输出中,我得到了几乎类似的代码,但现在我知道代码的哪一部分不起作用。

07-08 15:39:43.920: D/dalvikvm(8900): Trying to load lib /data/data/com.javacv.recorder/lib/libtbb.so 0x41362fd0
07-08 15:39:43.920: A/libc(8900): Fatal signal 4 (SIGILL) at 0x57c48cec (code=1)
07-08 15:39:44.420: I/DEBUG(1925): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
07-08 15:39:44.420: I/DEBUG(1925): Build fingerprint: 'samsung/GT-P7500/GT-P7500:4.0.4/IMM76D/XWLP5:user/release-keys'
07-08 15:39:44.420: I/DEBUG(1925): pid: 8900, tid: 8900  >>> com.javacv.recorder <<<
07-08 15:39:44.420: I/DEBUG(1925): signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 57c48cec
07-08 15:39:44.420: I/DEBUG(1925):  r0 57c48ce7  r1 00000008  r2 57c48ce8  r3 000270b4
07-08 15:39:44.420: I/DEBUG(1925):  r4 57c6fc00  r5 00000008  r6 00000004  r7 000040f1
07-08 15:39:44.420: I/DEBUG(1925):  r8 b001b868  r9 57c71000  10 0003f000  fp 57c36000
07-08 15:39:44.420: I/DEBUG(1925):  ip 00000000  sp beb570e0  lr b0003a43  pc 57c48cec  cpsr 00000010
07-08 15:39:44.420: I/DEBUG(1925):  d0  400000003eaaaaab  d1  3ff0000042c80000
07-08 15:39:44.420: I/DEBUG(1925):  d2  46fffe0000000000  d3  46fffe00c7000000
07-08 15:39:44.420: I/DEBUG(1925):  d4  0000000046fffe00  d5  0000000000000000
07-08 15:39:44.420: I/DEBUG(1925):  d6  4252000000000000  d7  3eaaaaab3f800000
07-08 15:39:44.420: I/DEBUG(1925):  d8  0000000000000000  d9  0000000000000000
07-08 15:39:44.420: I/DEBUG(1925):  d10 0000000000000000  d11 0000000000000000
07-08 15:39:44.420: I/DEBUG(1925):  d12 0000000000000000  d13 0000000000000000
07-08 15:39:44.420: I/DEBUG(1925):  d14 0000000000000000  d15 0000000000000000
07-08 15:39:44.420: I/DEBUG(1925):  scr 80000010
07-08 15:39:44.460: E/DataRouter(110): usb connection is true 
07-08 15:39:44.460: E/DataRouter(110): DSR is ON. Don't send DTR ON.
07-08 15:39:44.540: I/DEBUG(1925):          #00  pc 00012cec  /data/data/com.javacv.recorder/lib/libtbb.so
07-08 15:39:44.540: I/DEBUG(1925):          #01  lr b0003a43  /system/bin/linker
07-08 15:39:44.540: I/DEBUG(1925): code around pc:
07-08 15:39:44.540: I/DEBUG(1925): 57c48ccc e1a00006 eb004a45 eb004b9b 0002745c  ....EJ...K..\t..
07-08 15:39:44.540: I/DEBUG(1925): 57c48cdc fffffe00 fffffea8 fffffeb0 e59f300c  .............0..
07-08 15:39:44.540: I/DEBUG(1925): 57c48cec f2c00010 e79f3003 f443078f e12fff1e  .....0....C.../.
07-08 15:39:44.540: I/DEBUG(1925): 57c48cfc 000270b4 e59f300c e79f3003 e2833008  .p...0...0...0..
07-08 15:39:44.540: I/DEBUG(1925): 57c48d0c e5803000 e12fff1e 000270a4 e12fff1e  .0..../..p..../.
07-08 15:39:44.540: I/DEBUG(1925): code around lr:
07-08 15:39:44.540: I/DEBUG(1925): b0003a20 2301b90a 1e4be004 0483eb00 33fff04f  ...#..K.....O..3
07-08 15:39:44.540: I/DEBUG(1925): b0003a30 460d009e 6822e006 1e5019a4 d8001cc3  ...F.."h..P.....
07-08 15:39:44.540: I/DEBUG(1925): b0003a40 3d014790 dcf62d00 bf00bd70 4c05b510  .G.=.-..p......L
07-08 15:39:44.540: I/DEBUG(1925): b0003a50 447c2001 f00160e0 2300ffb1 f00160e3  . |D.`.....#.`..
07-08 15:39:44.540: I/DEBUG(1925): b0003a60 bd10ffad 00005aa6 4b1ab51f 22004601  .....Z.....K.F."
07-08 15:39:44.540: I/DEBUG(1925): memory map around addr 57c48cec:
07-08 15:39:44.540: I/DEBUG(1925): 57c23000-57c36000 
07-08 15:39:44.540: I/DEBUG(1925): 57c36000-57c6d000 /data/data/com.javacv.recorder/lib/libtbb.so
07-08 15:39:44.540: I/DEBUG(1925): 57c6d000-57c6e000 
07-08 15:39:44.540: I/DEBUG(1925): stack:
07-08 15:39:44.540: I/DEBUG(1925):     beb570a0  b00094f0  /system/bin/linker
07-08 15:39:44.540: I/DEBUG(1925):     beb570a4  b0009f60  /system/bin/linker
07-08 15:39:44.540: I/DEBUG(1925):     beb570a8  00000413  
07-08 15:39:44.540: I/DEBUG(1925):     beb570ac  57c42a70  /data/data/com.javacv.recorder/lib/libtbb.so
07-08 15:39:44.540: I/DEBUG(1925):     beb570b0  b0009934  /system/bin/linker
07-08 15:39:44.540: I/DEBUG(1925):     beb570b4  57c36114  /data/data/com.javacv.recorder/lib/libtbb.so
07-08 15:39:44.540: I/DEBUG(1925):     beb570b8  b001c88c  
07-08 15:39:44.540: I/DEBUG(1925):     beb570bc  b00094fc  /system/bin/linker
07-08 15:39:44.540: I/DEBUG(1925):     beb570c0  b000ebf0  
07-08 15:39:44.540: I/DEBUG(1925):     beb570c4  00000000  
07-08 15:39:44.540: I/DEBUG(1925):     beb570c8  b001b868  
07-08 15:39:44.540: I/DEBUG(1925):     beb570cc  57c71000  
07-08 15:39:44.540: I/DEBUG(1925):     beb570d0  0003f000  
07-08 15:39:44.540: I/DEBUG(1925):     beb570d4  b00040d9  /system/bin/linker
07-08 15:39:44.540: I/DEBUG(1925):     beb570d8  df0027ad  
07-08 15:39:44.540: I/DEBUG(1925):     beb570dc  00000000  
07-08 15:39:44.540: I/DEBUG(1925): #00 beb570e0  b000ebf0  
07-08 15:39:44.540: I/DEBUG(1925):     beb570e4  57c6fccc  /data/data/com.javacv.recorder/lib/libtbb.so
07-08 15:39:44.540: I/DEBUG(1925):     beb570e8  00000031  
07-08 15:39:44.540: I/DEBUG(1925):     beb570ec  b0004627  /system/bin/linker
07-08 15:39:44.540: I/DEBUG(1925):     beb570f0  00000000  
07-08 15:39:44.540: I/DEBUG(1925):     beb570f4  00000000  
07-08 15:39:44.540: I/DEBUG(1925):     beb570f8  0003f0f1  
07-08 15:39:44.540: I/DEBUG(1925):     beb570fc  b0003be7  /system/bin/linker
07-08 15:39:44.540: I/DEBUG(1925):     beb57100  b0006cbc  /system/bin/linker
07-08 15:39:44.540: I/DEBUG(1925):     beb57104  b0006bcc  /system/bin/linker
07-08 15:39:44.540: I/DEBUG(1925):     beb57108  00000000  
07-08 15:39:44.540: I/DEBUG(1925):     beb5710c  b000ebf0  
07-08 15:39:44.540: I/DEBUG(1925):     beb57110  b001b97c  
07-08 15:39:44.540: I/DEBUG(1925):     beb57114  00000031  
07-08 15:39:44.540: I/DEBUG(1925):     beb57118  000040f1  
07-08 15:39:44.540: I/DEBUG(1925):     beb5711c  b001b868  
07-08 15:39:44.540: I/DEBUG(1925):     beb57120  57c71000  
07-08 15:39:44.540: I/DEBUG(1925):     beb57124  0003f000  
07-08 15:39:45.980: I/DEBUG(1925): !@dumpstate -k -t -n -z -d -o /data/log/dumpstate_app_native -m 8900
07-08 15:39:45.980: I/BootReceiver(192): Copying /data/tombstones/tombstone_01 to DropBox (SYSTEM_TOMBSTONE)
07-08 15:39:45.990: I/dumpstate(8938): begin
07-08 15:39:54.060: I/ActivityManager(192): Process app.processName (pid 8900) (adj 0) has died.
07-08 15:39:54.070: D/Zygote(114): Process 8900 terminated by signal (4)
07-08 15:39:54.070: W/ActivityManager(192): Force removing r: app died, no saved state

对“PID 7847 先生”谋杀案的进一步调查让我发现,问题并不是代码,而是我的 Galaxy Tab 芯片组中的芯片组是 NVIDIA TEGRA 2,这就是我的应用程序无法运行的原因。

崩溃日志中的主线如下所示:

 signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 57c48cec

简介西吉尔在这里 http://en.wikipedia.org/wiki/SIGILL#SIGILL and a 相关问题 https://code.google.com/p/android/issues/detail?id=26199#c2 and a 相关文章 http://docs.nvidia.com/tegra/data/How_to_Use_OpenCV_for_Tegra.html.

到目前为止,这似乎是armeabi-v7a 和armeabi 之间的问题。 现在我有一个 MCQ : 请让我知道以下哪一个是我提出的正确问题,并解释其答案。

1)如果我在使用Javacv时错过或忽略了一些东西?

2) 或者如果 Javacv 根本不兼容 Tegra 2 并且没有希望?

3) 或者应该使用一些附加设置(armeabi-v7a 和armeabi)来编译.SO 文件,这将使其与Tegra 2 兼容,在这种情况下我该怎么做?

4) 我应该怎样做才能在 Galaxy P7500 10.1 Android Tab 等 Tegra 2 芯片组设备上运行它?

我的设备的 build.prop 文件:

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=IMM76D
ro.build.display.id=IMM76D.XWLP5
ro.build.version.incremental=XWLP5
ro.build.version.sdk=15
ro.build.version.codename=REL
ro.build.version.release=4.0.4
ro.build.date=Fri Aug  3 20:31:10 KST 2012
ro.build.date.utc=1343993470
ro.build.type=user
ro.build.user=dpi
ro.build.host=DELL162
ro.build.tags=release-keys
ro.product.model=GT-P7500
ro.product.name=GT-P7500
ro.product.device=GT-P7500
ro.product.brand=samsung
ro.product.board=GT-P7500
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=samsung
ro.product.locale.language=en
ro.product.locale.region=GB
ro.wifi.channels=
ro.board.platform=tegra
# ro.build.product is obsolete; use ro.product.device
ro.build.product=GT-P7500
ro.tether.denied=false
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=GT-P7500-user 4.0.4 IMM76D XWLP5 release-keys
ro.build.fingerprint=samsung/GT-P7500/GT-P7500:4.0.4/IMM76D/XWLP5:user/release-keys
ro.build.characteristics=tablet,nosdcard
# Samsung Specific Properties
ro.build.PDA=P7500XWLP5
ro.build.hidden_ver=P7500XWLP5
ro.build.changelist=997989
# end build properties
ro.opengles.version = 131072
wifi.interface=wlan0
ro.ethernet.interface=eth0
ro.ethernet.autoEnable=yes
rild.libpath=/system/lib/libsec-ril.so
rild.libargs=-d /dev/ttyS0

persist.sys.storage_preload=1

# Multimedia prop for Smart View
media.enable-commonsource=true

#
# ADDITIONAL_BUILD_PROPERTIES
#
dev.sfbootcomplete=0
drm.service.enable=true
dalvik.vm.heapstartsize=5m
dalvik.vm.heapgrowthlimit=64m
dalvik.vm.heapsize=256m
ro.com.google.clientidbase=android-samsung
ro.error.receiver.default=com.samsung.receiver.error
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.com.google.locationfeatures=1
ro.kernel.qemu=0
drm.service.enabled=true
ro.setupwizard.mode=OPTIONAL
ro.com.google.apphider=off
ro.com.google.gmsversion=4.0_r3
dalvik.vm.dexopt-flags=m=y
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt

为了摆脱这个问题,我找到了另一种方法。

只需检查用户使用您的应用程序的设备是否支持自定义相机。

这样您就可以处理它并启动本机相机。

private void checkIsCustomCameraSupported()
    {
        int isNeon = com.javacv.recorder.Util.checkNeonFeature();
        if (isNeon == 0)
        {
            IS_CUSTOM_CAMERA_ENABLED = false;
            Toast.makeText(MainActivity.this, "Custom Camera is not supported", Toast.LENGTH_LONG).show();
        //  finish(); or intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        }
    }

欲了解更多详情:

https://github.com/sourab-sharma/TouchToRecord/tree/master/TouchToRecordDemo https://github.com/sourab-sharma/TouchToRecord/tree/master/TouchToRecordDemo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

System.LoadLibrary(libname) 在 Javacv 代码中的 Nvidia Tegra 2 芯片组 (Android Samsung Tab) 上崩溃 的相关文章

  • android下拉刷新列表视图出错

    我正在使用功能下拉来刷新library https github com chrisbanes Android PullToRefresh克里斯班斯的 但是当我尝试在我的 xml 文件中导入这个小部件时 它向我显示以下错误 请帮助我如何解决
  • react-native:“adb”未被识别为内部或外部命令、可操作程序或批处理文件

    我是反应原生 Android 应用程序开发的新手 请帮我解决这个问题 我无法运行我的第一个应用程序 收到错误如下adb is not recognized as an internal or external command operabl
  • 待定意图的多个实例

    我创建了一个小部件 单击该小部件会激活 PendingIntent 问题是 当我屏幕上有多个小部件时 只有最新的小部件才会启动 PendingIntent 我读过一些关于独特请求代码的内容 但没有弄清楚这一点 有什么想法可以让多个小部件和
  • Android 上的 wifi 聊天

    Android 上可以使用 Wifi 聊天吗 我的要求是我的电脑与 wifi 适配器连接 并且我的 Android 设备有 wifi 我想将我的电脑转换为服务器 将 Android 设备转换为客户端并实现聊天 这可能吗 请帮帮我 显然这是可
  • Volley ProgressDialog在获取大量数据时卡住/冻结

    这是我的代码 private void downloadSupplyTownData final int townId2 Using Volley Post params to be sent to the server HashMap
  • 关于ListView中ViewHolder模式实现优化

    因此 众所周知的 ViewHolder 模式通常看起来像 ListAdapter Override public View getView final int position View convertView final ViewGrou
  • Android 6.0 中的打瞌睡和应用程序待机模式

    Google 在 Android 6 0 操作系统中引入了 Doze 和应用程序待机模式 设备将进入Doze如果设备被拔掉并且在一段时间内未使用并且应用程序在一段时间内保持不活动状态 则该应用程序将进入模式StandBy模式 如果我错了请纠
  • C++/OpenCV 将相机视频/图像 (MJPEG) 从套接字流式传输到浏览器 (Windows 8.1)

    对于 openCV C 来说还是很陌生 所以请耐心等待 我目前正在尝试找到一种好的 也可能是简单的 方法来从我的 OpenCV 应用程序实时 或几乎实时 流式传输我的相机帧 以便我可以打开浏览器 输入 IP 并查看图像 到目前为止 我使用w
  • android获取屏幕尺寸包括状态栏和软件导航栏的尺寸

    如何获取包含导航栏和状态栏的屏幕尺寸 以像素为单位 我已经尝试过使用获取尺寸DisplayMetrics但尺寸不包括软件导航栏 自 API 17 JELLY BEAN MR1 起添加了软件导航 因此我们只需要在 API 17 及更高版本中包
  • 更改 Android 中的配对对话框外观

    我们有一个与 BLE 设备 我们也生产 配对的 Android 应用程序 但默认的 Android 配对对话框存在一些问题 问题是 我们的设备不需要访问联系人或通话记录 是否可以删除该选项 无论是否选中该框 配对和我们的功能都将起作用 但我
  • 语音识别 API,Google Voice 会这么做吗?

    我有一个 Android 应用程序的想法 我希望能够说出命令并让应用程序监听这些命令并执行一些操作 例如 我希望我的应用程序闲置并听我的声音 当它听到我说 开始 时 应用程序将开始执行某些操作 直到我说 停止 这个想法是把手机放下 而不必实
  • android 图像被文本包裹

    我想将图像插入文本中 例如 我想显示这样的文本 要编辑图片 您应该单击 图片 按钮 其中 image 是真实图像 例如 ImageView 你可以试试这个 不知道这是否是你的需要 setContentView R layout main T
  • 每个项目有 2 个 TextView 的 Android ListView

    我在网上看到的所有示例每个项目仅包含 1 个 TextView 并且它们从数组加载数据 我不明白如何指定哪些数据去哪里 例如我的项目布局如下所示
  • 将片段添加到对话框

    我想向对话框添加一个片段 它可以是 DialogFragment 或常规对话框 我怎么做 这是我的 DialogFragment public class MyDialogFragment extends DialogFragment pu
  • Cache.properties(系统找不到指定的文件)

    我刚刚开始使用 Android Studio 1 3 sdk 24 直到今天它都运行良好 我收到有关 cache properties 的错误消息 并删除了该缓存文件 但现在收到此错误消息 Error C Users user1 gradl
  • 渲染期间引发异常:无法找到操作栏的布局

    刚才使用 Android Studio 时 我在编辑器中编辑 XML 文件 在预览和设计窗口中收到此错误 Exception raised during rendering Unable to find the layout for Act
  • 如何在Android中启用接近传感器

    我已在代码中成功配置了距离计 现在我想以编程方式关闭和打开屏幕 传感器代码工作正常 并且也调用了以下方法 Override public void onSensorChanged SensorEvent event TODO Auto ge
  • 处理 Android 自定义内容提供程序中的(跨进程)异常

    我的 Android 应用程序中有一个自定义内容提供程序 运行得相当不错 我希望其他应用程序也可以访问我的内容提供商 我想要一些干净的方法来传达异常和错误 但据我所知 Android 内容提供程序框架没有提供任何跨进程传播异常的方法 我应该
  • Android - 循环 strings.xml 文件

    我想知道是否有办法循环strings xml file 假设我有以下格式
  • 在这种情况下是否违反了 Google Play 开发者政策? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想通过 Android 应用程序赚一些钱 但我面临一个大问题 Google 在 Google Play 上不支持我所在的国家 地区 适用

随机推荐

  • 为什么我的 HTML 不使用 CSS 中定义的最后一个样式?

    我有以下按此顺序编写的 CSS h2 last child p last child ul last child margin bottom 0 content message margin 20px 1 667em 1 667em 1 6
  • 选择单元格中的所有形状

    我需要选择给定单元格中的所有形状 我写了这段代码 但它生成错误 Dim sh as shape For Each sh In ActiveSheet Shapes If Not Intersect Range B2 sh TopLeftCe
  • 使用打字稿的反应表出了问题

    将react table 与useGlobalFilter 一起使用时出现打字稿错误 我只是按照互联网上的一些说明进行操作 这是我的代码 const DataTable React FC
  • jScrollpane Chrome问题

    在 JScrollPane 站点的 已知问题 中 有一个 在 Webkit 浏览器中 CSS 必须是 包含在 JavaScript 之前 我这样做了 但有时我仍然遇到 仅在第一页 索引中 一些滚动问题 滚动就消失了 在我再次刷新页面后一切正
  • 使用 vba 创建“色阶”(避免条件格式)

    我正在寻找一种通过 VBA 代码将色阶应用于一组单元格的方法but not通过应用一些条件格式 我想将它们应用为静态颜色 内部颜色 我搜索了很多 Excel 网站 谷歌和 stackoverflow 但什么也没找到 对于我的情况 如果你看下
  • 使用 PowerMock 和 Mockito 模拟 Logger 和 LoggerFactory

    我想模拟以下记录器 但要验证日志条目是否被调用 而不是内容 private static Logger logger LoggerFactory getLogger GoodbyeController class 我想模拟用于 Logger
  • 自定义工具提示格式

    我在 Windows 上使用普通的原生 C 语言工作 没有其他平台 没有 C 是的 我是恐龙 我试图找到一个我认为的 所有者绘制工具提示控件 的示例 但这似乎不存在 至少对于标准 Windows 工具提示控件来说不是 我尝试搜索实现自定义工
  • 无需在线即可从 XMPP 获取离线消息

    我们的移动聊天应用程序使用 ejabberd 服务器 我们正在为我们的 IOS 应用程序使用 IOS XMPP Framework https github com robbiehanson XMPPFramework https gith
  • Jquery UI 选项卡在 AngularJS 中不起作用

    我在 angularJS 中使用 jquery UI 选项卡 并使用 ng repeat 生成列表项和选项卡容器 选项卡可以正常工作 但选项卡容器无法正常工作 模板 tabs html ul li a class pageName href
  • 下拉列表在 php 中保留先前选择的值

    我在 php 中创建了一个个人资料页面 用户使用 html 下拉列表选择性别 html代码如下 Gender
  • 当开关用于枚举时,default 有什么用?

    假设我有一个枚举Color有 2 个可能的值 RED and BLUE public enum Color RED BLUE 现在假设我有这个枚举的 switch 语句 其中有两个可能值的代码 Color color getColor a
  • C 和 C++ 中的“**”是什么意思?

    当一个对象开头有两个星号时意味着什么 variable 在声明中 这意味着它是一个指向指针的指针 int x declare x as a pointer to a pointer to an int 使用它时 它会引用它两次 int x
  • Chrome 扩展弹出窗口的非阻塞警报

    我正在制作一个 chrome 扩展 为此我需要在弹出窗口中添加一些非阻塞警报 定期警报会暂停 javascript 代码执行 而客户端并不希望这样 我尝试使用 jQuery 的 UI 对话框 但是当我单击 确定 按钮关闭它时 弹出窗口失去焦
  • 字符串和数组泛型方法将来将被弃用

    在下面的链接 MDN 站点 中 它显示 字符串泛型是非标准的 已弃用 将来可能会被删除 请注意 如果不使用下面提供的填充程序 则不能跨浏览器依赖它们 他们所指的方法是否是他们在此声明下方提供的垫片中列出的方法 这是我见过的唯一对 字符串泛型
  • 从 Angular 的详细信息页面导航回来后保持搜索页面的状态

    我是 Angular 新手 当用户通过单击搜索结果中的链接导航到详细信息页面时 我需要维护搜索结果页面的状态 即保留搜索结果网格的排序和过滤值 网格并再次导航回搜索页面 我尝试使用 CustomReuseStartegy 但遇到两个问题 当
  • 在 woocommerce 中创建带有音频文件的可下载产品

    相信你的一天过得很充实 我需要从前端创建一个可下载的 woocommerce 产品 我已经能够创建链接来发布产品并将音频文件添加为附件 但我需要在付款后使此附件可下载 就像您从仪表板发布可下载的 woocommerce 产品时一样 我已经可
  • VS Code “在插入符处选择单词”快捷方式,就像 WebStorm IDE 中一样

    WebStorm集成开发环境有一个非常有用的shortcut https intellij support jetbrains com hc en us community posts 206819745 Do You Use The Ct
  • sed 用变量替换[重复]

    这个问题在这里已经有答案了 我想替换一行内容alpha pi 具有给定角度的正确计算值 以弧度为单位 即变量 n1 bin bash read p Angle in degrees n1 Convert angle to radians p
  • 在 Simulink 中初始化 Dymola FMU

    我在尝试使用 Simulink 中的 fmu 文件模拟模型时遇到了问题 我使用 Dymola Simulink 接口的 Modelon FMI 工具箱将 Model Exchange 类型 fmu 文件 版本 1 0 导入 Simulink
  • System.LoadLibrary(libname) 在 Javacv 代码中的 Nvidia Tegra 2 芯片组 (Android Samsung Tab) 上崩溃

    我在 Android 中使用了一个自定义相机Javacv代码 https code google com p javacv 我没有包含所有 so 文件 而仅包含我的应用程序似乎需要的那些文件 如下面的屏幕截图所示 它在三星 Galaxy S