VCamera SDK Android版(短视频拍摄SDK)是炫一下(北京)科技有限公司官方推出的Android平台使用的软件开发工具包,为Android开发者提供简单、快捷的接口,帮助开发者实现Android平台上的短视频应用开发。
####1.如果使用android studio 开发,在使用 muldex 并打开的情况下,由于vitamio 的jar是混效过的,所以会导致再次打包的时候混淆一个混淆过的jar包的错误:
java.io.IOException: Can't read [ /build/intermediates/transforms/jarMerging/aliyun/debug/jars/1/1f/combined.jar] (Can't process class [com/yixia/camera/demo/ui/record/helper/ThemeHelper.class] (Unknown verification type [10] in stack map frame))
####2.如下是我的解决方案:
- 首先在 《Proguard源码库》 右下角 Tags 选择一个版本(eg. 5.2.1)的标签, 然后点击左边的 Download Snapshot 按钮进行下载这个版本的源码。
- 解压放到您的android studio 的 sdk/tools 目录下并以 proguard5.2.1 命名,以便与sdk自带的proguard包区分。
- 参考 《修改proguard源码》 修改 tools/proguard5.2.1/src/ClassContacts.java 里面的
public static final String ATTR_StackMapTable = "StackMapTable";
替换为:public static final String ATTR_StackMapTable = "dummy";
在 proguard5.2.1/buildscripts 目录下使用 ant命令 编译 (如没有安装自寻在网上搜索安装).编译完成后会在 proguard5.2.1/lib 目录下生成 proguard.jar 等文件.- 需要在项目工程里面配置使用新版本的依赖和引用:
在根目录创建 proguard 目录,并将上面生成的 proguard.jar 拷入其中
在根目录的 build.gradle 里面添加:buildscript { repositories { // 引用 proguard 包 flatDir { dirs 'proguard' } jcenter() } dependencies { // 这里的 5.2.1 是根据你下载的版本号填写 classpath 'proguard.io:proguard:5.2.1' classpath 'com.android.tools.build:gradle:2.0.0-beta5' } }
####3.clear 您的工程。进行编译就行了。
1.在demo中这样修改已经能正常使用了。但是在我的工程中,因为使用一些其它库,可能会导致 AsyncTask 被卡死,不能尽快的执行,可能要等很久才执行,就会导致录视频之后 encode 要很久都不开始执行,是因为jar包中有一些耗时操作是使用了 AsyncTask 这个类,所以导致很久都不开始执行。 目前,可以在 AndroidManifest.xml 里面的 MediaRecorderActivity 生命的地方加上
android:process="vitamio.record.video"
这里进程名字可以自定义,这样录制部分在新进程中执行就不会受到其它地方的影响了。2.作如下修改可以使用新版本的混淆工具,虽然并没有什么明显的东西~~~如下: 把 sdk/tools 里面的 proguard 使用新版本:
- 将 sdk/tools/proguard 里面的
proguard-android-optimize.txt
proguard-android.txt
proguard-project.txt
三个配置文件拷入 sdk/tools/proguard5.2.1- 将 sdk/tools/proguard 重命名为 sdk/tools/proguardold
- 将 sdk/tools/proguard5.2.1 重命名为 sdk/tools/proguard。
经过这样的修改,我的工程中能一样完美的使用 vitamio 了。
- NightQ QQ:472974979
##支持特性
- 支持分段拍摄、回删
- 支持静态/动态水印、声音主题合成
- 支持FFmpeg命令行
- 支持ARMV7 CPU