I am trying to run font asset creator of TextMesh Pro 1.2.4 on Unity 2018.1.6f1 on Fedora 27. I've got the following errors:
I've heard that TextMesh hasn't been supported on Linux yet. Is it still true?
DllNotFoundException: TMPro_Plugin
TMPro.EditorUtilities.TMPro_FontAssetCreatorWindow.DrawControls () (at
/root/.config/unity3d/cache/packages/packages.unity.com/com.unity.textmeshpro#1.2.4/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs:704)
TMPro.EditorUtilities.TMPro_FontAssetCreatorWindow.OnGUI () (at
/root/.config/unity3d/cache/packages/packages.unity.com/com.unity.textmeshpro#1.2.4/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs:266)
System.Reflection.MonoMethod.Invoke (System.Object obj,
System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder
binder, System.Object[] parameters, System.Globalization.CultureInfo
culture) (at :0) Rethrow as
TargetInvocationException: Exception has been thrown by the target of
an invocation. System.Reflection.MonoMethod.Invoke (System.Object obj,
System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder
binder, System.Object[] parameters, System.Globalization.CultureInfo
culture) (at :0)
System.Reflection.MethodBase.Invoke (System.Object obj,
System.Object[] parameters) (at :0)
UnityEditor.HostView.Invoke (System.String methodName, System.Object
obj) (at
/home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:291)
UnityEditor.HostView.Invoke (System.String methodName) (at
/home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:284)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at
/home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:257)
UnityEditor.DockArea.OldOnGUI () (at
/home/builduser/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:386)
UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI
(UnityEngine.Event evt) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:234)
UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent
(UnityEngine.Event e) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:372)
UnityEngine.Experimental.UIElements.IMGUIContainer.HandleEvent
(UnityEngine.Experimental.UIElements.EventBase evt) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:356)
UnityEngine.Experimental.UIElements.EventDispatcher.DispatchEvent
(UnityEngine.Experimental.UIElements.EventBase evt,
UnityEngine.Experimental.UIElements.IPanel panel) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:215)
UnityEngine.Experimental.UIElements.UIElementsUtility.DoDispatch
(UnityEngine.Experimental.UIElements.BaseVisualElementPanel panel) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:224)
UnityEngine.Experimental.UIElements.UIElementsUtility.ProcessEvent
(System.Int32 instanceID, System.IntPtr nativeEventPtr) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:77)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID,
System.IntPtr nativeEventPtr) (at
/home/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:184)
llNotFoundException: TMPro_Plugin
TMPro.EditorUtilities.TMPro_FontAssetCreatorWindow.OnDisable () (at
/root/.config/unity3d/cache/packages/packages.unity.com/com.unity.textmeshpro#1.2.4/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs:204)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
The native side of the code required to generate text is not available on Linux yet. The plugin itself should work during run-time in a build but its Editor tool is not supported on Linux. The Editor tool is only supported on Windows and Mac.
The original reason for the lack of support is because only few people use Linux when enveloping games with Unity. Also Unity Editor itself does not support Linux officially. Whatever support they have for it is still in experimental mode and there are many issues that makes it not worth using at this point.
Since TextMesh Pro is now bought by Unity, it's very likely that Linux will be supported. You should wait until Unity finally integrate it with Unity and maybe they will add support for Linux. At this moment, I think you should file for a bug report to remind Unity that this issue is still there then just use the Text component until they fix it. If you still want to use TextMesh Pro, a workaround is to use VMware Workstation to run Windows or MacOS on your Linux then you can use them to create the Text Assets and export and import them as Packages in your Linux project.
Related
I try to make a AxWindowsMediaPlayer control on form whit MONO on raspian. It work very well on Windows, but on Raspian I have this error:
"System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Hmi800App.PlayerVideoForm'.
at System.Windows.Forms.Control.CreateHandle () [0x00013] in <28e46de2d20c496895000ef0abfc2106>:0
at System.Windows.Forms.Form.CreateHandle () [0x00000] in <28e46de2d20c496895000ef0abfc2106>:0
at Hmi800App.PlayerVideoForm.InitializeControl (System.String _url, System.Boolean alredySee, System.String DpiDescription, System.String _dpiType) [0x0011e] in <4c680c0bc03a4b558a55ee653edb38ad>:0
It same that handle of control is not created.
Can you halp me?
Researched this issue many times but didn't found solution of it. Working with xamarin forms version 5.0.0.2012, on win 10 os (saw many solutions for mac or linux but didn't found any for windows), using PCSC library version 5.0.0. Trying to invoke context.Establish method while debugging on Android 8.0:
public SimpleReader(ISCardContext context, bool releaseContextOnDispose = false)
{
if (context == null)
{
context = (ISCardContext) new SCardContext();
context.Establish(SCardScope.System);
releaseContextOnDispose = true;
}
this._context = context;
this._reader = (ISCardReader) new SCardReader(context);
this._releaseContextOnDispose = releaseContextOnDispose;
this._disconnectReaderOnDispose = true;
}
When, exception occur with message below:
System.DllNotFoundException: libpcsclite.so.1 assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) PCSC.Interop.Linux.LinuxNativeMethods.SCardEstablishContext(intptr,intptr,intptr,intptr&)
at PCSC.Interop.Linux.PCSCliteLinux.EstablishContext (PCSC.SCardScope dwScope, System.IntPtr pvReserved1, System.IntPtr pvReserved2, System.IntPtr& phContext) [0x00006] in C:\Users\danm\src\pcsc-sharp\src\PCSC\Interop\Linux\PCSCliteLinux.cs:39
at PCSC.SCardContext.Establish (PCSC.SCardScope scope) [0x00020] in C:\Users\danm\src\pcsc-sharp\src\PCSC\SCardContext.cs:81
at App1xx.Services.SimpleReader.SimpleReader..ctor (PCSC.ISCardContext context, System.Boolean releaseContextOnDispose) [0x00023] in C:\Users\vzhynkin\source\repos\App1xx\App1xx\App1xx\Services\SimpleReaderLib\SimpleReader.cs:59
at App1xx.Services.SimpleReader.SimpleReader..ctor () [0x00000] in C:\Users\vzhynkin\source\repos\App1xx\App1xx\App1xx\Services\SimpleReaderLib\SimpleReader.cs:70
at App1xx.Services.UaIdRLib.IdCardReader.connect () [0x00002] in C:\Users\vzhynkin\source\repos\App1xx\App1xx\App1xx\Services\UaIdRLib\IdCardReader.cs:371
at App1xx.Views.AboutPage.OnButtonClicked (System.Object sender, System.EventArgs args) [0x0000f] in C:\Users\vzhynkin\source\repos\App1xx\App1xx\App1xx\Views\AboutPage.xaml.cs:22
at Xamarin.Forms.Button.Xamarin.Forms.Internals.IButtonElement.PropagateUpClicked () [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Button.cs:187
at Xamarin.Forms.ButtonElement.ElementClicked (Xamarin.Forms.VisualElement visualElement, Xamarin.Forms.Internals.IButtonElement ButtonElementManager) [0x0001f] in D:\a\1\s\Xamarin.Forms.Core\ButtonElement.cs:61
at Xamarin.Forms.Button.SendClicked () [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Button.cs:173
at Xamarin.Forms.Platform.Android.ButtonElementManager.OnClick (Xamarin.Forms.VisualElement element, Xamarin.Forms.IButtonController buttonController, Android.Views.View v) [0x00000] in D:\a\1\s\Xamarin.Forms.Platform.Android\ButtonElementManager.cs:25
at Xamarin.Forms.Platform.Android.FastRenderers.ButtonRenderer.Android.Views.View.IOnClickListener.OnClick (Android.Views.View v) [0x00000] in D:\a\1\s\Xamarin.Forms.Platform.Android\FastRenderers\ButtonRenderer.cs:72
at Android.Views.View+IOnClickListenerInvoker.n_OnClick_Landroid_view_View_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_v) [0x00010] in /Users/builder/azdo/_work/278/s/xamarin-android/src/Mono.Android/obj/Release/monoandroid10/android-30/mcw/Android.Views.View.cs:2252
at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.68(intptr,intptr,intptr)
Does anyone faced with this issue?
The PCSC library does not appear to explicitly support Android. In my experience, nugets that work with Xamarin.Android have explicit dependencies set for the platform, but this one does not.
The library tries to use P/Invoke wrappers around native code. You can see that there are implementations for a number of operating systems here, but I don't see any references to Android. The stack trace shows that the code is deciding to use the Linux wrapper, which makes sense. It's looking for the libpcsclite.so.1 native "C/C++" library, but it's not finding it. That library has a home page that does not reference Android.
The PCSC nuget docs state:
pcsc-sharp does not contain any device drivers. A PC/SC compliant
reader + driver is mandatory.
That's the libpcsclite.so.1 . Either your Android device doesn't provide it, or if it does, it's not in a location that your Android app can find it. My Android device (running Android 9) does not have that library in any of /system/*lib* directories, which means that at least for my device someone would need to compile that native library for the CPU (usually arm64) for the device. If you can either compile the native code yourself or find someone who has, AND the native code supports the reader on your Android device, then you could get the whole thing to work.
I don't have any experience with PCSC myself - just some experience with Xamarin and native libraries.
Xamarin iOS native app. I have to write unit test for Realm api. It is the layer with ability to filter data. It can contain complicated Linq queries, so testing is necessary.
For instance, method:
Task<List<T>> Get(int count, int type, int? id);
Creating NUnit test I need to get Realm object:
var realm = Realm.GetInstance(new InMemoryConfiguration("test"));
but getting an exception:
System.TypeInitializationException : The type initializer for 'Realms.SharedRealmHandle' threw an exception.
----> System.DllNotFoundException : realm-wrappers assembly:<unknown assembly> type:<unknown type> member:(null)
at Realms.InMemoryConfiguration.CreateRealm (Realms.Schema.RealmSchema schema) [0x0003e] in C:\jenkins\workspace\realm_realm-dotnet_PR\Realm\Realm\Configurations\InMemoryConfiguration.cs:62
at Realms.Realm.GetInstance (Realms.RealmConfigurationBase config, Realms.Schema.RealmSchema schema) [0x0003c] in C:\jenkins\workspace\realm_realm-dotnet_PR\Realm\Realm\Realm.cs:136
at Realms.Realm.GetInstance (Realms.RealmConfigurationBase config) [0x00000] in C:\jenkins\workspace\realm_realm-dotnet_PR\Realm\Realm\Realm.cs:81
at UnitTestREALM.TransactionsRealmApiTest.RealmApi () [0x00001] in /Users/user/Projects/myApp/UnitTestREALM/TransactionsRealmApiTest.cs:26
at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.InternalInvoke(System.Reflection.RuntimeMethodInfo,object,object[],System.Exception&)
at System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0006a] in /Users/builder/jenkins/workspace/build-package-osx-mono/2020-02/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.Reflection/RuntimeMethodInfo.cs:395
--DllNotFoundException
at (wrapper managed-to-native) Realms.SynchronizationContextEventLoopSignal.install_eventloop_callbacks(Realms.SynchronizationContextEventLoopSignal/get_eventloop,Realms.SynchronizationContextEventLoopSignal/post_on_event_loop,Realms.SynchronizationContextEventLoopSignal/release_eventloop)
at Realms.SynchronizationContextEventLoopSignal.Install () [0x0003b] in C:\jenkins\workspace\realm_realm-dotnet_PR\Realm\Realm\Native\SynchronizationContextEventLoopSignal.cs:122
at Realms.NativeCommon.Initialize () [0x00112] in C:\jenkins\workspace\realm_realm-dotnet_PR\Realm\Realm\Native\NativeCommon.cs:91
at Realms.SharedRealmHandle..cctor () [0x00000] in C:\jenkins\workspace\realm_realm-dotnet_PR\Realm\Realm\Handles\SharedRealmHandle.cs:128
So, main point that I can't create Realm instance.
Is launched iphone simulator necessary to work with Realm?
Are there some possibility to create unit tests for Realm?
Or should it be some kind of Auto tests?
As I found, solution is iOS Unit Test App (Solution -> Add -> New Project -> iOS -> Tests -> Unit Test App).
There are few disadvantages, but it is possible to test Realm. The next challenge is to run it and get result with TeamCity.
When I imported an asset to unity then I try to run the game this message appeared :
allowed per platform. Assembly paths: C:/Users/ELEMENT14/MyGameIdea/Library/PackageCache/com.unity.ads#2.0.8/Editor/UnityEditor.Advertisements.dll, Assets/2D Top Down Shooter/2D Top Down Shooter/Library/PackageCache/com.unity.ads#2.0.8/Editor/UnityEditor.Advertisements.dll
UnityEditor.Scripting.ScriptCompilation.EditorBuildRules.CreateTargetAssemblies (System.Collections.Generic.IEnumerable1[T] customScriptAssemblies, System.Collections.Generic.IEnumerable1[T] precompiledAssemblies) (at C:/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorBuildRules.cs:251)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.UpdateCustomTargetAssemblies () (at
C:/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilation.cs:636)
UnityEditor.Scripting.ScriptCompilation.EditorCompilation.SetAllCustomScriptAssemblyJsons (System.String[] paths) (at C:/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilation.cs:746)
UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface.SetAllCustomScriptAssemblyJsons (System.String[] allAssemblyJsons) (at C:/buildslave/unity/build/Editor/Mono/Scripting/ScriptCompilation/EditorCompilationInterface.cs:217)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
My Unity version is 2018.4.11
I'm writing mobile autotests using C#, Xamarin 6.1.3, iOS 10.2, iPhone 6s Plus, Xcode 8.2, OS X El Capitan 10.11.6.
I'm trying to launch tests on simulator using the following command:
IApp iApp = ConfigureApp.iOS.AppBundle(path_to_app/Application.app).StartApp();
I've got the following error:
Calabash.XDB.Core.Exceptions.DeviceAgentException : Failed to install app /Volumes/Win7 Ultim/Framework/new2/Payload/Atom.app
ExitCode: 5
-a,--app-bundle <path/to/app-bundle.app> Path .app bundle (for .ipas, unzip and look inside of 'Payload')
-c,--codesign-identity <codesign-identity> [OPTIONAL] Identity used to codesign app bundle [device only] DEFAULT=
-d,--device-id <device-identifier> iOS Simulator GUIDs
-u,--update-app <true-or-false> [OPTIONAL] When true, will reinstall the app if the device contains an older version than the bundle specified DEFAULT=1
install
Error installing org.gamatech.Movie-Friends to 9E44D0FE-A3F9-4FC1-8635- 20FB8AD20BA4: Error Domain=com.facebook.FBSimulatorControl Code=0 "Simulator does not support any of the architectures ([arm, arm64]) of the executable at /Volumes/Win7 Ultim/Framework/new2/Payload/Atom.app/Atom. Simulator Archs ([x86_64, i386])" UserInfo={NSLocalizedDescription=Simulator does not support any of the architectures ([arm, arm64]) of the executable at /Volumes/Win7 Ultim/Framework/new2/Payload/Atom.app/Atom. Simulator Archs ([x86_64, i386])}
false
at Xamarin.UITest.iOS.iOSAppLauncher.LaunchAppLocal (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Http.HttpClient httpClient, System.Boolean clearAppData) [0x0020a] in <e747267e258a4a668973c7ca7e9014a8>:0
at Xamarin.UITest.iOS.iOSAppLauncher.LaunchApp (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Http.HttpClient httpClient, Xamarin.UITest.TestCloud.TestCloudiOSAppConfiguration testCloudAppConfiguration, Xamarin.UITest.Shared.Http.HttpClient testCloudWsClient, Xamarin.UITest.Shared.Http.HttpClient xtcServicesClient, System.Boolean testCloudUseDeviceAgent) [0x0007a] in <e747267e258a4a668973c7ca7e9014a8>:0
at Xamarin.UITest.iOS.iOSApp..ctor (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration) [0x00302] in <e747267e258a4a668973c7ca7e9014a8>:0
at Xamarin.UITest.Configuration.iOSAppConfigurator.StartApp (Xamarin.UITest.Configuration.AppDataMode appDataMode) [0x00017] in <e747267e258a4a668973c7ca7e9014a8>:0
at Xamarin.Application.Initialize () [0x00026] in /Volumes/Win7 Ultim/Framework/Xamarin/Application.cs:44
at Xamarin.Application..ctor () [0x00011] in /Volumes/Win7 Ultim/Framework/Xamarin/Application.cs:22
at Xamarin.Application.GetInstance () [0x0000c] in /Volumes/Win7 Ultim/Framework/Xamarin/Application.cs:62
at Xamarin.BaseTest.InitBeforeTest () [0x0000b] in /Volumes/Win7 Ultim/Framework/Xamarin/BaseTest.cs:18
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /private/tmp/source-mono-4.6.0/bockbuild-mono-4.6.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/corlib/System.Reflection/MonoMethod.cs:305
Ios simulator supports only i386 architecture, as I know it cannot be changed.
Is it possible to change architecture of application, if I don't have source code, just .ipa and .app files?
It is not possible to change the supported architecture of an .ipa or an .app without the source code.