Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

遇到一个编译问题,求教 #2

Open
laiweifeng opened this issue May 13, 2021 · 16 comments
Open

遇到一个编译问题,求教 #2

laiweifeng opened this issue May 13, 2021 · 16 comments

Comments

@laiweifeng
Copy link

andrid studio -> File -> Open ->导入aoce-master\android\,整个工程导入后在编译apk的时候报了一个错误

E:\StudioWorkspace\aoce-master\aoce-master\CMakeLists.txt : C/C++ debug|armeabi-v7a : CMake Error at E:\StudioWorkspace\aoce-master\aoce-master\code\aoce_ffmpeg\CMakeLists.txt:5 (message):
FFmpeg not find.please set option AOCE_INSTALL_FFMPEG false

不知道怎么解决,求指教,非常感谢

@xxxzhou
Copy link
Owner

xxxzhou commented May 17, 2021

@laiweifeng
1 https://github.com/xxxzhou/aoce_thirdparty 下载,然后把ffmpeg目录放到aoce子目录thirdparty的目录下.
2 不使用aoce_ffmpeg模块里的功能,直接设置CMake里的选项AOCE_INSTALL_FFMPEG为false.

@laiweifeng
Copy link
Author

aoce找到两个地方,不知道具体放在哪

  1. aoce-master\code\aoce
  2. aoce-master\android\aoce

CMake文件有七八个,也不知道在哪个CMake文件里AOCE_INSTALL_FFMPEG为false

还请大佬指点,小白一个,第一次接触有点摸不着头脑

@xxxzhou
Copy link
Owner

xxxzhou commented Jul 9, 2021

aoce找到两个地方,不知道具体放在哪

  1. aoce-master\code\aoce
  2. aoce-master\android\aoce

CMake文件有七八个,也不知道在哪个CMake文件里AOCE_INSTALL_FFMPEG为false

还请大佬指点,小白一个,第一次接触有点摸不着头脑

不好意思,github还不怎么会用,才发现提示是这个,我定义的所有CMake option都在根目录的CMakeLists.txt文件上,就是在aoce-master目录下的那个CMakeLists.txt文件上.

@aigeek
Copy link

aigeek commented Jul 14, 2021

大佬你好,我也遇到了这个问题,但是我关闭了aoce-master目录下面的AOCE_INSTALL_FFMPEG后,还是会报错:
/Users/yao/Development/open_android_demo/vulkan/aoce/android/aoce/src/main/java/aoce/android/library/JNIHelper.java:5: 错误: 程序包aoce.android.library.xswig不存在
import aoce.android.library.xswig.*;

另外,还有两个问题:
1.请问settings.gradle中的一些组件为什么被屏蔽了呢,比如//include ":04_vulkantest"
//project(":04_vulkantest").projectDir = new File("04_vulkantest")
//
2.上面哪个demo可以实现这个链接中的抠图效果呢?【https://zhuanlan.zhihu.com/p/348824878】

@xxxzhou
Copy link
Owner

xxxzhou commented Jul 14, 2021

@aigeek 你可以看https://zhuanlan.zhihu.com/p/388055520 最后说明,需要装swig,没有装的话,可以直接下载这个封装好的包(https://github.com/xxxzhou/aoce_thirdparty/blob/main/aoce-release.aar).
1 这些应该都可以用,屏蔽只是为了突出aoceswigtest.
2 vulkanextratest,但是我不知道后面有没因为查看别的效果改过,你可以直接看aoceswigtest项目,这个里面包含扣像.

@aigeek
Copy link

aigeek commented Jul 21, 2021

@aigeek 你可以看https://zhuanlan.zhihu.com/p/388055520 最后说明,需要装swig,没有装的话,可以直接下载这个封装好的包(https://github.com/xxxzhou/aoce_thirdparty/blob/main/aoce-release.aar).
1 这些应该都可以用,屏蔽只是为了突出aoceswigtest.
2 vulkanextratest,但是我不知道后面有没因为查看别的效果改过,你可以直接看aoceswigtest项目,这个里面包含扣像.

谢谢大佬,已经调通了😄

@xxxzhou
Copy link
Owner

xxxzhou commented Jul 22, 2021

@aigeek 能否详细说下你遇到的问题与解决方法,我好在文档里突出说明下.

@aigeek
Copy link

aigeek commented Jul 27, 2021

@aigeek 能否详细说下你遇到的问题与解决方法,我好在文档里突出说明下.

好的,两个问题:
问题1和解决办法.“错误: 程序包aoce.android.library.xswig不存在”,通过你上面这个方法:“可以直接下载这个封装好的包(https://github.com/xxxzhou/aoce_thirdparty/blob/main/aoce-release.aar).”,gradle就可以sync成功。
问题2 和解决办法:按照问题1的解决方法可以gradle sync成功,但是build apk的时候会出现“More than one file was found with OS independent path 'lib/x86/libc++_shared.so'”等重复so问题,根据gradle的报错提示,需要在“aoceswigtest”,"06_mediaplayer","07_androidtest"这些module的build.gradle的android{}中增加
packagingOptions {
pickFirst "lib/arm64-v8a/libc++_shared.so"
pickFirst "lib/arm64-v8a/libaoce_vulkan.so"
pickFirst "lib/arm64-v8a/libaoce_vulkan_extra.so"
pickFirst "lib/arm64-v8a/libaoce.so"
pickFirst "lib/arm64-v8a/libaoce_android.so"
}
然后可以build出apk。

最后还有一个没有解决的问题,我在小米11跑apk是可以的,但是在另一个Android设备上提示没有匹配的so导致安装失败:
adb: failed to install C:\Users\jack\Documents\APK\aoceswigtest-debug.apk: Get install_switch_flag: 1
install apk has be enabled from pm by user!
Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

请问:1.当前apk支持多少平台,分别是哪些呢?(比如arm64-v8a)?2.怎么自己配置apk支持的ndk平台呢;3.配置好了怎么编译呢?

麻烦了,如有支持,非常感谢

@xxxzhou
Copy link
Owner

xxxzhou commented Jul 28, 2021

@aigeek 1 在相应的项目的build.gradle下的ndk添加abiFilters的类别就行,会分别针对你列出的类别编译,我测试 abiFilters "armeabi-v7a", "arm64-v8a"这二种是没问题的.
2 在android 解决方案下的local.properties文件里可以设置选择的ndk.dir.
3 一般来说,你改了上面的二个文件,都会自动重新编译,你也可以选择build/rebuild project.

@xxxzhou
Copy link
Owner

xxxzhou commented Jul 28, 2021

@aigeek 其中aoceswigtest这个项目是纯java项目,需要引用封装C++的aoce.android.library.xswig包,而余下的"06_mediaplayer","07_androidtest"项目是直接调用C++底层实现,故不需要对应的aoce.android.library.xswig包,引用的话,项目因为会自动libaoce_vulkan.so这些库,所以会和xswig里包含的这些so文件重复.

@ghost
Copy link

ghost commented Sep 15, 2021

@aigeek 你可以看https://zhuanlan.zhihu.com/p/388055520 最后说明,需要装swig,没有装的话,可以直接下载这个封装好的包(https://github.com/xxxzhou/aoce_thirdparty/blob/main/aoce-release.aar).
1 这些应该都可以用,屏蔽只是为了突出aoceswigtest.
2 vulkanextratest,但是我不知道后面有没因为查看别的效果改过,你可以直接看aoceswigtest项目,这个里面包含扣像.

谢谢大佬,已经调通了😄

兄弟,你怎么调通的? 我的最后运行的时候会显示mainactivity里面so文件缺失

@1759122600
Copy link

1759122600 commented Mar 4, 2022

@xxxzhou 你好,我编译aoceswigtest工程,导入aoce-release.aar后并排除了重复的so包之后编译报AoceWrapper.createEqualizeHistLayer(false);和AoceWrapper.createEqualizeHistLayer(true)方法找不到,而且createThresholdEdgeDetectionLayer方法不带参数了,我将错误的代码注释掉后可以编译出apk,但是安装后没有任何画面,这是什么原因呢?
还有我编译vulkanextratest项目成功后运行的时候报没有找到libvulkanextratest.so包,这个要如何解决呢

@xxxzhou
Copy link
Owner

xxxzhou commented Mar 4, 2022

@1759122600 不好意思,应该是aoce-release.aar太早了,我现在开发环境没有android方面的,你要不看下https://github.com/xxxzhou/aoce/tree/master/android/README.md 用swig自己转并编译aoce-release.aar.

@1759122600
Copy link

1759122600 commented Mar 4, 2022

@1759122600不好意思,应该是aoce-release.aar太早了,我现在开发环境没有android方面的,你不要看下https://github.com/xxxzhou/aoce/tree/master/android/README。 md用swig自己转并编译aoce-release.aar。

@xxxzhou 你好,我按照https://github.com/xxxzhou/aoce/tree/master/android/README。 md的方法编译了04_vulkantest项目,但是为什么没有生成aoce_swig_java文件夹呢?我的04_vulkantest项目build.gradle配置如下:
image

运行后的目录结构如下:
image

@1759122600
Copy link

@1759122600不好意思,应该是aoce-release.aar太早了,我现在开发环境没有android方面的,你不要看下https://github.com/xxxzhou/aoce/tree/master/android/README。 md用swig自己转并编译aoce-release.aar。

你好,我按照https://github.com/xxxzhou/aoce/tree/master/android/README。 md的方法编译了04_vulkantest项目,但是为什么没有生成aoce_swig_java文件夹呢?我的04_vulkantest项目build.gradle配置如下: image

运行后的目录结构如下: image

你好,我在04_vulkantest/.cxx/cmake/debug/arm64-v8a/下也没有看到swig文件
image

@xxxzhou
Copy link
Owner

xxxzhou commented Mar 4, 2022

@1759122600 先确认你是否安装好swig,在cmd里看看swig -version有没版本信息,然后确认你是否debug/arm64-v8a模式下.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants