Androidbug-java.util.zip.ZipException: duplicate entry(重复依赖多版本的类库)

以上大概意思:重复依赖,重复了条目。

1、清除一下缓存:File->Invalidate Caches/Restart..

注意:
除开Gradle依赖类库之外,还可以在项目中的libs下静态方式添加类库。
若是使用静态方式添加jar类库的,请删除重复的jar

2、编译前clean下

https://blog.csdn.net/hexingen/article/details/74065796

Androidbug-android-sdk-macosx/cmake/3.6.4111459/bin/cmake

Build command failed.
Error while executing process /Users/xx/Documents/software/android-sdk-macosx/cmake/3.6.4111459/bin/cmake with arguments {-H/Users/xx/Documents/qtt/RTC_Android_v1.2.1/qtt_test/app -B/Users/xx/Documents/qtt/RTC_Android_v1.2.1/qtt_test/app/.externalNativeBuild/cmake/debug/armeabi -GAndroid Gradle - Ninja -DANDROID_ABI=armeabi -DANDROID_NDK=/Users/xx/Documents/software/android-sdk-macosx/ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/xx/Documents/qtt/RTC_Android_v1.2.1/qtt_test/app/build/intermediates/cmake/debug/obj/armeabi -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=/Users/xx/Documents/software/android-sdk-macosx/cmake/3.6.4111459/bin/ninja -DCMAKE_TOOLCHAIN_FILE=/Users/xx/Documents/software/android-sdk-macosx/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-16 -DCMAKE_CXX_FLAGS=}
(include) CMakeLists.txt
Open File
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
Build command failed.
Error while executing process /Users/xx/Documents/software/android-sdk-macosx/cmake/3.6.4111459/bin/cmake with arguments {-H/Users/xx/Documents/qtt/RTC_Android_v1.2.1/qtt_test/app -B/Users/xx/Documents/qtt/RTC_Android_v1.2.1/qtt_test/app/.externalNativeBuild/cmake/release/armeabi -GAndroid Gradle - Ninja -DANDROID_ABI=armeabi -DANDROID_NDK=/Users/xx/Documents/software/android-sdk-macosx/ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/Users/xx/Documents/qtt/RTC_Android_v1.2.1/qtt_test/app/build/intermediates/cmake/release/obj/armeabi -DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=/Users/xx/Documents/software/android-sdk-macosx/cmake/3.6.4111459/bin/ninja -DCMAKE_TOOLCHAIN_FILE=/Users/xx/Documents/software/android-sdk-macosx/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-16 -DCMAKE_CXX_FLAGS=}
(include) CMakeLists.txt
Open File
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

却换NDK版本,我用了android-ndk-r15b

Glide

Transformation<Bitmap> circleCrop = new CircleCrop();
if (data.imgUrl.endsWith("gif")) {
Glide.with(context)
.asGif()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.load(data.imgUrl)
.into(imageView);
} else if (data.imgUrl.endsWith("webp")) {
Glide.with(context)
.load(data.imgUrl)
.optionalTransform(circleCrop)
.optionalTransform(WebpDrawable.class, new WebpDrawableTransformation(circleCrop))
.into(imageView);
} else {
Glide.with(context)
.load(data.imgUrl)
.into(imageView);
}

Android播放器-顶点坐标和材质坐标

顶点坐标信息

                     ^
|
4 | 3
(1, -1, 0) <----------------- (1, 1, 0)
| | |
| | |
---------------------|------------------------->
| | |
| | |
V | V
(-1, -1, 0) <-----——----------- (1, -1, 0)
2 | 1
|

上三角形:3->4->2->3
下三角形:1->2->3->1
共向量:2->3

float *vertexData = new float[12]{
1f, -1f, 0f,
-1f, -1f, 0f,
1f, 1f, 0f,
-1f, 1f, 0f
}

材质坐标信息

         ^
|
4 | 3
(0, 1) ----------- (1, 1)
| |
| |
| |
-------(0, 0) ----------- (1, 0)------>
2 | 1
|

glTexParameteri

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

GL_TEXTURE_2D: 操作2D纹理
GL_TEXTURE_MIN_FILTER: 缩小过滤
GL_TEXTURE_MAG_FILTER: 放大过滤

GL_LINEAR: 线性过滤,使用距离当前渲染像素中心最近的4个纹理加权平均值

Android播放器-着色器语言GLSL

着色器语言又叫Shader,有两个模块一个是顶点着色器,一个是片元着色器

  • 顶点着色器是针对每个顶点执行一次,用于确定顶点的位置;
  • 片元着色器是针对每个片元(可以理解为每个像素)执行一次,用于确定每个片元(像素)的颜色;
  • GLSL的基本语法与C基本相同
  • 它完美的支持向量和矩阵操作
  • GLSL提供了大量的内置函数来提供丰富的扩展功能
  • 它是通过限定符操作来管理输入输出类型的

ffmpeg -i 720.mp4 -pix_fmt yuv420p -s 424×240 out.yuv

Android播放器-EGL

EGL是OpenGL与窗口系统对应的适配层

https://www.khronos.org/registry/EGL/sdk/docs/man/

---RenderAPI(OpenGL ES)---
-----------EGL------------
---Native Window System---
Display与原生窗口链接
EGLDisplay eglGetDisplay
EGLBoolean eglInitialize

Surface配置和创建surface(窗口和屏幕上的渲染区域)
EGLBoolean eglChooseConfig
EGLSurface eglCreateWindowSurface

Context创建渲染环境(Context上下文)
渲染环境指OpengGL ES的所有项目运行需要的数据结构。如顶点、片段着色器、顶点数据矩阵
eglCreateContext
eglMakeCurrent