RenderHeads / UnityPlugin-AVProMovieCapture

AVPro Movie Capture is a Unity Plugin for advanced video capture to AVI/MP4/MOV files
https://renderheads.com/products/avpro-movie-capture/
48 stars 8 forks source link

[Bug] Exception: AndroidJavaException: java.lang.ClassNotFoundException: com.renderheads.AVPro.MovieCapture.Manager #368

Closed candykim-dev closed 8 months ago

candykim-dev commented 8 months ago

Unity Version

2021.3.8f1

AVPro Movie Capture Version

5.2.0-ultimate

Which platform(s) are you using?

Android

Which OS version(s) are you using?

Android

Which rendering API(s) are you using?

Vulkan

Hardware

Lenovo P11 Galaxy S10

Which capture component are you using?

Capture From WebCamTexture

Capture mode

Realtime

Which output mode are you using?

Video file

Video codecs

H264

Audio source

None

Audio codecs

AAC

Any other component configuration

No response

The issue

the below is my project setting. R8 use now. what can i do to fix this?

image

image

my proguard-user.txt

# --- Start of section automatically included for 3D WebView for Android - PLEASE DO NOT EDIT ---
# For more info, please see this page: https://support.vuplex.com/articles/android-minification
-keep public interface com.vuplex.webview.BooleanCallback { public *; }
-keep public interface com.vuplex.webview.ByteArrayCallback { public *; }
-keep public interface com.vuplex.webview.StringCallback { public *; }
-keep public interface com.vuplex.webview.StringAndBooleanDelegateCallback { public *; }
-keep public interface com.vuplex.webview.StringAndObjectCallback { public *; }
-keep public class com.vuplex.webview.ByteArrayCallbackResult { public *; }
-keep public interface com.vuplex.webview.Callback { public *; }
-keep public interface com.vuplex.webview.FileSelectionCallback { public *; }
-keep public class com.vuplex.webview.HelperActivity { public *; }
-keep public class com.vuplex.webview.WebView { public *; }
-keep public class com.vuplex.webview.WebView3D { public *; }

# --- End of section for 3D WebView for Android ---

# UniversalSDK
# https://chc3484.gitbook.io/sdk/v/ko/unity-sdk/getstarted/android-setup
-keep class com.universal.sdk.unitywrapper.** {*;}
-keep class io.github.coolishbee.** { *; }

# renderheads.AVPro.MovieCapture
-keep class com.renderheads.AVPro.MovieCapture.Manager { public *; }

android cat log crash.log

Log output

Exception: AndroidJavaException: java.lang.ClassNotFoundException: com.renderheads.AVPro.MovieCapture.Manager

java.lang.ClassNotFoundException: com.renderheads.AVPro.MovieCapture.Manager
java.lang.Class.classForName(Native Method)
java.lang.Class.forName(Class.java:454)
com.unity3d.player.UnityPlayer.nativeRender(Native Method)
com.unity3d.player.UnityPlayer.access$300(Unknown Source:0)
com.unity3d.player.UnityPlayer$e$1.handleMessage(Unknown Source:83)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:223)
com.unity3d.player.UnityPlayer$e.run(Unknown Source:20)
Caused by: java.lang.ClassNotFoundException: com.renderheads.AVPro.MovieCapture.Manager
... 8 more
UnityEngine.AndroidJNISafe.CheckException () (at <00000000000000000000000000000000>:0)
UnityEngine.AndroidJNISafe.FindClass (System.String name) (at <00000000000000000000000000000000>:0)
UnityEngine.AndroidJavaClass._AndroidJavaClass (System.String className) (at <00000000000000000000000000000000>:0)
RenderHeads.Media.AVProMovieCapture.CaptureBase.Awake () (at <00000000000000000000000000000000>:0)
UnityEngine.Object.Instantiate[T] (T original) (at <00000000000000000000000000000000>:0)
RenderHeads.Media.AVProMovieCapture.Demos.WebcamCaptureDemo+<Start>d8.MoveNext () (at <00000000000000000000000000000000>:0)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <00000000000000000000000000000000>:0)
UnityEngine.Object:Instantiate(T)
RenderHeads.Media.AVProMovieCapture.Demos.<Start>d8:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
candykim-dev commented 8 months ago

fix with this -keep class com.renderheads.AVPro.MovieCapture.*{ ; }