gpt4 book ai didi

android - 使用同一库的不同版本 - 发现多个文件的操作系统独立路径为 'builddef.lst'

转载 作者:太空狗 更新时间:2023-10-29 13:03:49 30 4
gpt4 key购买 nike

问题

我正在尝试使用两个库修剪和压缩视频:Silicompressork4l-video-trimmer .问题是两个库都使用 mp4parser但它的不同版本。k4l-video-trimmer 使用版本 1.1.20 作为 build.gradle 中的依赖项,而 Silicompressor 使用版本 1.0.6 作为 jar 文件。现在项目构建正常,但是当我尝试运行它时,出现错误:

More than one file was found with OS independent path 'builddef.lst'

我已经尝试过的东西

在打包选项中排除 builddef.lst

我在应用级 build.gradle 中添加了这些行:

android {
packagingOptions {
exclude 'builddef.lst'
exclude 'version.txt'
exclude 'isoparser-default.properties'
}
}

然后我遇到了另一个我无法解决的错误:

Program type already present: com.coremedia.iso.BoxParser Message{kind=ERROR, text=Program type already present: com.coremedia.iso.BoxParser, sources=[Unknown source file], tool name=Optional.of(D8)}

从 k4l-video-trimmer 中排除 mp4parser

我用过

implementation ('life.knowledge4:k4l-video-trimmer:1.0') {
exclude group: 'com.googlecode.mp4parser'
}

代替

implementation 'life.knowledge4:k4l-video-trimmer:1.0'

现在当我尝试修剪视频时项目运行并崩溃。

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/googlecode/mp4parser/FileDataSourceViaHeapImpl; at life.knowledge4.videotrimmer.utils.TrimVideoUtils.genVideoUsingMp4Parser(TrimVideoUtils.java:72) at life.knowledge4.videotrimmer.utils.TrimVideoUtils.startTrim(TrimVideoUtils.java:65) at life.knowledge4.videotrimmer.K4LVideoTrimmer$5.execute(K4LVideoTrimmer.java:354) at life.knowledge4.videotrimmer.utils.BackgroundExecutor$Task.run(BackgroundExecutor.java:212) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761)

从 Silicompressor 中排除 mp4parser

我导入了 Silicompressor 的模块而不是使用依赖行,并删除了 mp4parser 的 jar 文件以强制库使用版本 1.1.20。现在应用程序再次运行,但压缩视频没有音频!

使用两个版本的 mp4parser

我使用 jarjar 将 Silicompressor 使用的 jar 文件从 com.googlecode.mp4parser 重新打包到 org.repackage.com.googlecode.mp4parser。仍然有同样的问题。

构建.gradle

这是我的应用级 build.gradle 文件:

apply plugin: 'com.android.application'

configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}

android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
applicationId "---"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
repositories {
google()
jcenter({url "http://jcenter.bintray.com/"})
mavenLocal()
jcenter()
maven { url "http://jzaccone.github.io/SlidingMenu-aar" }
maven { url "https://jitpack.io" }
maven { url 'https://maven.google.com' }
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
}

/*packagingOptions {
exclude 'builddef.lst'
exclude 'version.txt'
exclude 'isoparser-default.properties'
}*/
}

dependencies {
...
implementation ('life.knowledge4:k4l-video-trimmer:1.0') {
exclude group: 'com.googlecode.mp4parser'
}
implementation 'com.iceteck.silicompressorr:silicompressor:2.1'
}

感谢您的宝贵时间!

最佳答案

@MilanPansuriya 的帮助下,我终于解决了这个问题。请按照以下步骤解决上述问题:-

  1. 创建一个结合两个库(kl-trimmer 和 Silicompressor)的新库。在我的例子中是(kl-trimmer 和 VideoCompressor(https://github.com/fishwjy/VideoCompressor/))。
  2. 在您的库中使用 isoparser-1.0.6.jar。
  3. 现在,在构建新库后,库 kl-trimmer 的 TrimVideoUtils 类中会出现错误。
  4. 错误将是 FileDataSourceViaHeapImpl 未找到。实际上特定的类在更高版本的 isoparser 中可用。将其更改为 FileDataSourceImpl
  5. 现在库将在您的项目中构建得很好。

注意:- 现在这两个库都可以正常工作,但由于我们已将 FileDataSourceViaHeapImpl 更改为 FileDataSourceImpl 有时我会出现内存不足的情况修剪一些大尺寸视频(这显然应该发生,并且旧版本 kl-trimmer 的用户也报告了)。

到目前为止,这是我能够获得的唯一解决方案。如果有人有更好的解决方案,请也更新我们。谢谢。

关于android - 使用同一库的不同版本 - 发现多个文件的操作系统独立路径为 'builddef.lst',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51336655/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com