The application on Unity began to fly out on the phone when you rotate the screen. I decided to do it in the Landscape application (I tried both left and right) Now the situation is as follows - if the phone is immediately on its side, the application does not start. If the phone is in the portrait position - when you start the application, it turns it on and the application crashes again.

Those. the only way to immediately hold the phone in a portrait position. Flies out exactly at the moment of the screen rotation attempt.

What could it be and how to deal with it? Unity5

Update the problem. I found out that removing the Vibrate plugin, the problem disappears. Perhaps some kind of conflict. Link to the plugin https://www.assetstore.unity3d.com/en/#!/content/16648

Maybe something in the code there needs to be corrected

Plugin manifest code (when deleting a line with orientation, nothing changes)

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.izaron.androideffects.vibration" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="9" /> <application android:label="@string/app_name" android:icon="@drawable/app_icon"> <activity android:name="com.izaron.androideffects.vibration.MyMainActivity" android:configChanges="keyboardHidden|orientation" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.VIBRATE"/> 

Class Code VibrationActivity

  public static class VibrationActivity { #if UNITY_ANDROID && !UNITY_EDITOR public static AndroidJavaClass activityClass = new AndroidJavaClass("com.izaron.androideffects.vibration.MyMainActivity"); public static AndroidJavaClass unityActivityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); public static AndroidJavaObject activityObj = unityActivityClass.GetStatic<AndroidJavaObject>("currentActivity"); #else public static AndroidJavaClass activityClass; public static AndroidJavaClass unityActivityClass; public static AndroidJavaObject activityObj; #endif } 

Vibration class code

 public static class Vibration { #if UNITY_ANDROID && !UNITY_EDITOR private static AndroidJavaObject vibrationObj = VibrationActivity.activityObj.Get<AndroidJavaObject>("vibration"); #else private static AndroidJavaObject vibrationObj; #endif public static void Vibrate() { if (Application.platform == RuntimePlatform.Android) vibrationObj.Call("vibrate"); } public static void Vibrate(long milliseconds) { if (Application.platform == RuntimePlatform.Android) vibrationObj.Call("vibrate", milliseconds); } public static void Vibrate(long[] pattern, int repeat) { if (Application.platform == RuntimePlatform.Android) vibrationObj.Call("vibrate", pattern, repeat); } public static bool HasVibrator() { if (Application.platform == RuntimePlatform.Android) return vibrationObj.Call<bool>("hasVibrator"); else return false; } public static void Cancel() { if (Application.platform == RuntimePlatform.Android) vibrationObj.Call("cancel"); } } 

Back in the plugin jar file weighing 500 kb

I would also be happy to offer alternatives in this case. The built-in Hanheld.Vibrate method in Unity is very weak. (turns on and off and everything) Maybe a plugin or a piece of code that will allow good control of vibration, at least change its duration.

After a while, the project stopped sending to the phone at all - Unable convert to dex-classes

Began to issue this

  CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details. C:/Program Files/Java/jdk1.8.0_92\bin\java.exe -Xmx2048M - Dcom.android.sdkmanager.toolsdir="C:/Users/user/Android/sdk\tools" - Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" - stderr[ Uncaught translation error: java.lang.IllegalArgumentException: alr eady added: Lcom/unity3d/player/NativeLoader; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/unity3d/player/ReflectionHelper; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/unity3d/player/ReflectionHelper$1; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/unity3d/player/ReflectionHelper$a; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/unity3d/player/UnityPlayer; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/unity3d/player/UnityPlayer$1; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/unity3d/player/UnityPlayer$10; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/unity3d/player/UnityPlayer$11; Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/unity3d/player/UnityPlayer$12; UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.RuntimeException: Translation has been interrupted at com.android.dx.command.dexer.Main.processAllFiles(Main.java:608) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:311) at com.android.dx.command.dexer.Main.run(Main.java:277) at com.android.dx.command.dexer.Main.main(Main.java:245) at com.android.dx.command.Main.main(Main.java:106) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:43) at java.lang.reflect.Method.invoke(Method.java:498) at SDKMain.main(SDKMain.java:129) Caused by: java.lang.InterruptedException: Too many errors at com.android.dx.command.dexer.Main.processAllFiles(Main.java:600) ... 9 more ] stdout[ processing archive bin\classes.jar... processing bitter/jnibridge/JNIBridge.class... processing bitter/jnibridge/JNIBridge$a.class... processing com/unity3d/player/NativeLoader.class... processing com/unity3d/player/ReflectionHelper.class... processing com/unity3d/player/ReflectionHelper$1.class... processing com/unity3d/player/ReflectionHelper$a.class... processing com/unity3d/player/UnityPlayer.class... processing com/unity3d/player/UnityPlayer$1.class... processing com/unity3d/player/UnityPlayer$10.class... processing com/unity3d/player/UnityPlayer$11.class... processing com/unity3d/player/UnityPlayer$12.class... processing com/unity3d/player/UnityPlayer$13.class... processing com/unity3d/player/UnityPlayer$14.class... processing com/unity3d/player/UnityPlayer$15.class... processing com/unity3d/player/UnityPlayer$15$1.class... processing com/unity3d/player/UnityPlayer$16.class... processing com/unity3d/player/UnityPlayer$17.class... processing com/unity3d/player/UnityPlayer$18.class... processing com/unity3d/player/UnityPlayer$19.class... processing com/unity3d/player/UnityPlayer$2.class... processing com/unity3d/player/UnityPlayer$20.class... processing com/unity3d/player/UnityPlayer$3.class... processing com/unity3d/player/UnityPlayer$4.class... processing com/unity3d/player/UnityPlayer$5.class... processing com/unity3d/player/UnityPlayer$6.class... processing com/unity3d/player/UnityPlayer$7.class... processing com/unity3d/player/UnityPlayer$8.class... processing com/unity3d/player/UnityPlayer$9.class... processing com/unity3d/player/UnityPlayer$a.class... processing com/unity3d/player/UnityPlayer$b.class... processing com/unity3d/player/UnityPlayer$c.class... processing com/unity3d/player/UnityPlayerActivity.class... processing com/unity3d/player/UnityPlayerNativeActivity.class... processing com/unity3d/player/UnityPlayerProxyActivity.class... processing com/unity3d/player/UnityWebRequest.class... processing com/unity3d/player/WWW.class... processing com/unity3d/player/a.class... processing com/unity3d/player/a$1.class... processing com/unity3d/player/a$2.class... processing com/unity3d/player/a$a.class... processing com/unity3d/player/b.class... processing com/unity3d/player/b$1.class... processing com/unity3d/player/b$2.class... processing com/unity3d/player/c.class... processing com/unity3d/player/d.class... processing com/unity3d/player/d$1.class... processing com/unity3d/player/d$2.class... processing com/unity3d/player/e.class... processing com/unity3d/player/f.class... processing com/unity3d/player/g.class... processing com/unity3d/player/h.class... processing com/unity3d/player/i.class... processing com/unity3d/player/j.class... processing com/unity3d/player/k.class... processing com/unity3d/player/k$1.class... processing com/unity3d/player/k$2.class... processing com/unity3d/player/k$2$1.class... processing com/unity3d/player/k$2$1$1.class... processing com/unity3d/player/l.class... processing com/unity3d/player/l$1.class... processing com/unity3d/player/m.class... processing com/unity3d/player/n.class... processing com/unity3d/player/n$1.class... processing com/unity3d/player/o.class... processing com/unity3d/player/p.class... processing com/unity3d/player/p$1.class... processing com/unity3d/player/q.class... processing com/unity3d/player/r.class... processing com/unity3d/player/s.class... processing com/unity3d/player/s$1.class... processing com/unity3d/player/s$2.class... processing com/unity3d/player/s$3.class... processing com/unity3d/player/t.class... processing com/unity3d/player/u.class... processing com/unity3d/player/v.class... processing com/unity3d/player/w.class... processing com/unity3d/player/w$1.class... processing org/fmod/FMODAudioDevice.class... processing org/fmod/a.class... processing archive plugins\.\Vibration.jar... ignored resource .classpath ignored resource .project ignored resource AndroidManifest.xml ignored resource META-INF/MANIFEST.MF ignored resource bin/AndroidManifest.xml ignored resource bin/R.txt ignored resource bin/jarlist.cache ignored resource bin/res/crunch/drawable-hdpi/ic_launcher.png ignored resource bin/res/crunch/drawable-mdpi/ic_launcher.png ignored resource bin/res/crunch/drawable-xhdpi/ic_launcher.png ignored resource bin/res/crunch/drawable-xxhdpi/ic_launcher.png ignored resource bin/vibration.jar processing com/izaron/androideffects/vibration/BuildConfig.class... processing com/izaron/androideffects/vibration/MyMainActivity.class... processing com/izaron/androideffects/vibration/R.class... processing com/izaron/androideffects/vibration/R$attr.class... processing com/izaron/androideffects/vibration/R$dimen.class... processing com/izaron/androideffects/vibration/R$drawable.class... processing com/izaron/androideffects/vibration/R$id.class... processing com/izaron/androideffects/vibration/R$layout.class... processing com/izaron/androideffects/vibration/R$menu.class... processing com/izaron/androideffects/vibration/R$string.class... processing com/izaron/androideffects/vibration/R$style.class... processing com/izaron/androideffects/vibration/Vibration.class... ignored resource ic_launcher-web.png ignored resource libs/android-support-v4.jar ignored resource libs/classes.jar ignored resource proguard-project.txt ignored resource project.properties ignored resource res/drawable-hdpi/ic_launcher.png ignored resource res/drawable-mdpi/ic_launcher.png ignored resource res/drawable-xhdpi/ic_launcher.png ignored resource res/drawable-xxhdpi/ic_launcher.png ignored resource res/layout/activity_my_main.xml ignored resource res/menu/my_main.xml ignored resource res/values-sw600dp/dimens.xml ignored resource res/values-sw720dp-land/dimens.xml ignored resource res/values-v11/styles.xml ignored resource res/values-v14/styles.xml ignored resource res/values/dimens.xml ignored resource res/values/strings.xml ignored resource res/values/styles.xml processing archive plugins\.\classes.jar... processing com/unity3d/player/NativeLoader.class... processing com/unity3d/player/ReflectionHelper.class... processing com/unity3d/player/ReflectionHelper$1.class... processing com/unity3d/player/ReflectionHelper$a.class... processing com/unity3d/player/UnityPlayer.class... processing com/unity3d/player/UnityPlayer$1.class... processing com/unity3d/player/UnityPlayer$10.class... processing com/unity3d/player/UnityPlayer$11.class... processing com/unity3d/player/UnityPlayer$12.class... processing com/unity3d/player/UnityPlayer$12$1.class... processing com/unity3d/player/UnityPlayer$13.class... processing com/unity3d/player/UnityPlayer$14.class... processing com/unity3d/player/UnityPlayer$15.class... processing com/unity3d/player/UnityPlayer$16.class... processing com/unity3d/player/UnityPlayer$17.class... processing com/unity3d/player/UnityPlayer$18.class... processing com/unity3d/player/UnityPlayer$19.class... processing com/unity3d/player/UnityPlayer$2.class... processing com/unity3d/player/UnityPlayer$3.class... processing com/unity3d/player/UnityPlayer$4.class... processing com/unity3d/player/UnityPlayer$5.class... processing com/unity3d/player/UnityPlayer$6.class... processing com/unity3d/player/UnityPlayer$7.class... processing com/unity3d/player/UnityPlayer$8.class... processing com/unity3d/player/UnityPlayer$9.class... processing com/unity3d/player/UnityPlayer$a.class... processing com/unity3d/player/UnityPlayer$b.class... processing com/unity3d/player/UnityPlayerActivity.class... processing com/unity3d/player/UnityPlayerNativeActivity.class... processing com/unity3d/player/UnityPlayerProxyActivity.class... processing com/unity3d/player/WWW.class... processing com/unity3d/player/a.class... processing com/unity3d/player/a$1.class... processing com/unity3d/player/a$2.class... processing com/unity3d/player/a$a.class... processing com/unity3d/player/b.class... processing com/unity3d/player/b$1.class... processing com/unity3d/player/b$2.class... processing com/unity3d/player/c.class... processing com/unity3d/player/d.class... processing com/unity3d/player/d$1.class... processing com/unity3d/player/d$2.class... processing com/unity3d/player/e.class... processing com/unity3d/player/f.class... processing com/unity3d/player/g.class... processing com/unity3d/player/h.class... processing com/unity3d/player/i.class... processing com/unity3d/player/j.class... processing com/unity3d/player/j$1.class... processing com/unity3d/player/k.class... processing com/unity3d/player/l.class... processing com/unity3d/player/m.class... processing com/unity3d/player/m$1.class... processing com/unity3d/player/m$2.class... processing com/unity3d/player/m$3.class... processing com/unity3d/player/n.class... processing com/unity3d/player/o.class... processing com/unity3d/player/p.class... processing com/unity3d/player/q.class... processing com/unity3d/player/q$1.class... processing org/fmod/FMODAudioDevice.class... processing org/fmod/FMODAudioDevice$a.class... processing org/fmod/a.class... ] UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) UnityEditor.BuildPlayerWindow:BuildPlayerAndRun() 

The question still remains relevant - can anyone have a better solution for vibration than this semi-working plug-in?

  • Is it possible to attach trace trace exceptions to the question? - VladD
  • @VladD I apologize, but how to make it on the phone? In other conditions, the problem is not reproduced. - Dmitrii pm
  • Well, run under the debugger, it should work. - VladD
  • @VladD After a while, it stopped running at all with this plugin. Produces this (text is big, added to the main post) - Dmitrii

0