私のプロジェクトにaar
ファイルを追加しました。 aarファイルのサイズは約50 MB
です。そのアプリ内で実行されるユニティゲームです。私の現在のアプリケーションのapk
のサイズは約82 MBなので、このUnity library
の場合、apkサイズは130 MB
`preDexLibraries`がtrueのときにアプリケーションがロールポップでクラッシュする
になります。デフォルトで私はこれらのオプションを使用していました。 preDexLibraries
がfalseに設定されている場合
dexOptions {
javaMaxHeapSize "4g" //specify the heap size for the dex process
preDexLibraries false
}
は今、Gradleの操作は、次のエラーメッセージで失敗します。私はtrue
にpreDexLibraries
を設定した場合、それが構築され、ロリポップ+デバイス上で正常に動作しますが、次のエラーメッセージとロリポップに失敗し、
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Translation has been interrupted
。 AnalyticsSampleApp
として
11-21 17:43:25.229 14213-14213/com.myapp.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myapp.app, PID: 14213
java.lang.RuntimeException: Unable to instantiate application com.myapp.app.AnalyticsSampleApp: java.lang.ClassNotFoundException: Didn't find class "com.myapp.app.AnalyticsSampleApp" on path: DexPathList[[zip file "/data/app/com.myapp.app-2/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp.app-2/lib/arm, /vendor/lib, /system/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:628)
android.app.ActivityThread.handleBindApplication(ActivityThread.java:4966)
at android.app.ActivityThread.access$1600(ActivityThread.java:177)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1493)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5912)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
は、私のアプリケーション私はこれをググ
Application
から拡張するクラス、しかしpreDexLibraries
が実際に何をするか理解することはまだできません。
preDexLibraries(あなたの第三Qの答えは):それはインクリメンタルで使用することができるので、それは( DEXファイルライブラリのたびを構築せず)を構築したライブラリのうちのdexファイルを作成します。クリーン ビルド時にこの項目を使用すると、すべてが少し遅くなります。
;それに続いて 'MultiDex.install(this);; – Programmer
@Programmer:私はロリポップ+デバイスをターゲットにしていますが、これはまだ必要ですか?私はちょうどgradideからmultidexを有効にしました –