unitydlliosplayer.dll有没有 32位的,或者说怎么在32位系统上加载unitydlliosplayer

npUnity3D32.dll.dll下载,简介,描述,修复,等相关问题一站搞定_DLL之家照例,我不具体说我解决办法的辛酸经过。我所有的blog都不会告诉你是为什么。只简单粗暴的给出解决办法。
核心思路是:
在java层面实现串口消息收发,然后用UnityPlayer.UnitySendMessage("unity_com","java_messgae", sss); 转发给Unity
而Unity则调用
if (cls == null)
cls = new AndroidJavaClass("com.unity.FS.UnityPlayerActivity");
cls.CallStatic("unity_message", msg); 给java发数据,让java执行真正的发送函数。发往串口。
好了,办法说完了。不喜欢听我啰嗦的,可以自己去搜索怎么实现。
那么下面分解步骤:
1。去网上搜索lib_serialport。将下载回来的两个文件SerialPort.c SerialPort.h 两个.mk放到一个文件夹,例如jni文件夹。然后执行ndk-build.
看到这里,肯定很多人吐槽,去哪里下?下回来没有SerialPort.h只有.c。淡定我也是makefile出来的,但是稍后我会提供完整的用到的文件。当然,我的封装方法不一定适合你就是了。
比如UnityPlayer.UnitySendMessage("unity_com","java_messgae", sss); 网上大多是 Main Camera。 XXXX,而我认真负责的告诉你,只要场景中一直明确存在对应名字的对象就可以。
ndk-build是什么?请你自己去恶补基础知识。
然后将build出来的 obj libs jni 自己保存好。
2。打开unity,在场景里创建com消息接收对象比如这里是unity_com,给它挂载一个脚本,确保有java_messgae 这个接口就行。有人又要纠结函数怎么写,参数是什么。建议去别的地方搜。。比如宣雨松的blog。
void java_messgae(string str)
{//str就是你收到的串口消息。我在java层将16进制转成字符串传过来的。//当然,代码包里面有
}3。导出unity工程为eclipse工程。这是个基本问题。但是我大发慈悲,上个图。
4。然后将刚才ndk-build出来的 三个文件夹拷贝到该工程根目录下。该工程是哪个该工程?你猜我说的是哪个工程?
5。去网上搜一个java使用串口的.java文件回来。然后自己再封装一个跟应用有关的。具体可以去这里看看http://lpcjrflsa.iteye.com/blog/2097280
http://www.linuxidc.com/Linux/83.htm
如果懒得看,就用我封装好的。但是使用习惯不一定适合你。6。打开eclipse,用java编写好串口收发的,然后编译apk即可。至于中间的环境搭建等基本问题,我相信遇到串口问题的人都会了。不啰嗦。一篇文章不可能教会你所有东西。
代码在这里
http://download.csdn.net/detail/glunoy/9637750
Unity Adroid串口Dll not found Exception : MonoPosixHelper第二种解决办法
如题,第一种办法前文已给,但是略显麻烦,因为还要导出成Eclipse或者Android Studio,然后java 什么的 覆盖一堆 然后开其他重新编译,不是说不可以,至少浪费十几秒时间?假定你电脑都...
Unity3D运行报DllNotFoundException
Unity3D运行报DllNotFoundException起因
unity程序build到pc上,拿到其他人的机器上结果有些功能不正常,看log里面大概是
Fallback handler co...
Unity5 解决dllnotfound的问题
问题出现过程 :初始版本 64位编辑器 发布为64位程序 64位dll。一切正常。
后来发布成x86时各种dll找不到(已编译为32位的dll),然后开始枚举各种排除。各种google。。。都没有解...
unity 加载c++ dll文件提示DllNotFoundException的解决办法
很久前就碰到这个问题,生成的exe是可以正确运行,但在editor里面总是提示DllNotFoundException,一直没有功夫解决。今天终于搞定了。原因在于VS默认添加的dll的依赖项。工程属性...
System.DllNotFoundException: 无法加载 DLL异常来自 HRESULT:0x
最近一个项目用到第三方C++库文件,突然有一天发现有的客户电脑上运行报错…
错误信息如下:
由于平时安装IDE的时候都默认安装了c++运行库,所以程序在开发过程中没有暴露出改问题...
System.DllNotFoundException 问题分析与解决
用c#调用c++的一个dll的时候出现System.DllNotFoundException 异常,但某些机子有会有这个异常,有些机子没有这个异常,调查发现该dll是个mfc的dll,编译时需要静态链...
Unhandled Exception:System.DllNotFoundException: Unable to load DLL&**&:找不到指定的模块
在项目中使用C#代码调用C++ DLL时。常常会出现这个问题:在开发者自己的电脑上运行没有问题,但是部署到客户电脑上时会出现下面问题:
Unhandled Exception:System.DllNo...
unity3d遇到monoposixhelper错误解决方法
去asset stroe下载Unity.IO.Compression.这个资源,
将用到System.IO.Compression 改为 Unity.IO.Compression即可。...
【Unity3d】如何解决Unity3d在引用外部插件时报DLLNotFoundException的问题
我们在项目中使用了Lua插件, 一直用得很好, 最近安装了几台新的祼机, 用Unity在编辑器模式下运行项目时发现总是报
DllNotFoundException: /Assets/Plugins/...
没有更多推荐了,扫一扫体验手机阅读
【小松教你手游开发】【unity实用技能】unity发包优化(android一键发包)
<span type="1" blog_id="2084971" userid='
85篇文章,5W+人气,0粉丝Unity 5.5x external dll issue on build after updade from 5.3.x - Unity Answers
Navigation
Unity account
You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio.
Unity 5.5x external dll issue on build after updade from 5.3.x
Hello Everyone and thank you for your time. I'm facing an issue building (win x86) a specific project on Unity 5.5.0f3
Last Year using Unity 5.2.x I made some code for a project related for visually impaired persons. At that time I found a very interesting integration made by DaG_II
He used the external DLL Interop.SpeechLib.dll to make a unity project that can interact with windows SAPI 5.x
So I took his idea, I made better samples code about how to interact with windows SAPI and I shared the code and the build (made by Unity 5.2.x)
Now, after Unity 5.4.0 release, the code keeps run, and so the dll but trying to build unity suddenly stop whit this error:
ReflectionTypeLoadException: The classes in the module cannot be loaded System.Reflection.Assembly.GetTypes () (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/Assembly.cs:371) UnityEditor.AttributeHelper+c_Iterator31[System.Collections.Generic.IEnumerable1[UnityEditorInternal.PluginDesc]].MoveNext () (at C:/buildslave/unity/build/Editor/Mono/AttributeHelper.cs:277) UnityEditor.PluginImporter+c_Iterator0.MoveNext () (at C:/buildslave/unity/build/Editor/Mono/PluginImporter.cs:41) DesktopStandalonePostProcessor.CopyNativePlugins () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/DesktopStandalonePostProcessor.cs:116) DesktopStandalonePostProcessor.SetupStagingArea () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/DesktopStandalonePostProcessor.cs:145) DesktopStandalonePostProcessor.PostProcess () (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/DesktopStandalonePostProcessor.cs:23) UnityEditor.WindowsStandalone.WindowsDesktopStandalonePostProcessor.PostProcess (BuildPostProcessArgs args) (at C:/buildslave/unity/build/PlatformDependent/WinPlayer/Extensions/Managed/WindowsDesktopStandalonePostProcessor.cs:118) UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:176) UnityEditor.HostView:OnGUI()
The issue is related to the sapi dll, I awaited until unity 5.5 was released but it still not working, and I have not enought experience to figured out.
Thank you for any suggestion
Packing sprites: SpritePacker failed to get types from Interop.SpeechLib, Version=5.4.0.0, Culture=neutral, PublicKeyToken=null. Error: The classes in the module cannot be loaded. UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object) UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[]) UnityEngine.Logger:Log(LogType, Object) UnityEngine.Debug:Log(Object) UnityEditor.Sprites.Packer:RegenerateList() (at C:\buildslave\unity\build\Editor\Mono\Sprites\SpritePacker.cs:74) UnityEditor.Sprites.Packer:GetSelectedPolicyId() (at C:\buildslave\unity\build\Editor\Mono\Sprites\SpritePacker.cs:102) UnityEditor.BuildPipeline:BuildPlayerInternalNoCheck(String[], String, String, BuildTarget, BuildOptions, Boolean) UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions, Boolean) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:464) UnityEditor.BuildPlayerWindow:BuildPlayerWithDefaultSettings(Boolean, BuildOptions) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:321) UnityEditor.BuildPlayerWindow:GUIBuildButtons(IBuildWindowExtension, Boolean, Boolean, Boolean, BuildPlatform) (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:1364) UnityEditor.BuildPlayerWindow:ShowBuildTargetSettings() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:1291) UnityEditor.BuildPlayerWindow:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindow.cs:887) System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&) System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222) System.Reflection.MethodBase:Invoke(Object, Object[]) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115) UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:249) UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:242) UnityEditor.HostView:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:76)
(Filename: /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs Line: 222)
Grouping sprites using the selected SpritePackerPolicy. - Packing 0 atlases. - Packing completed. Opening scene 'Temp/__Backupscenes/0.backup' Load scene 'Temp/__Backupscenes/0.backup' time: 0.038916 ms Unloading 7 Unused Serialized files (Serialized files now loaded: 0) System memory in use before: 38.3 MB. System memory in use after: 38.4 MB.
See this .
Hint: You can notify a user about this post by typing @username
Attachments: Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
116 People are following this question.private void j() 这个函数是在 UnityPlayer 的构造函数中调用完 nativeFile 之后调用的,观察发现 var4 这个变量是从以下函数中返回:
private static String[] a(Context var0) {
String var1 = var0.getPackageName();
Vector var2 = new Vector();
var6 = var0.getPackageManager().getPackageInfo(var1, 0).versionC
} catch (NameNotFoundException var5) {
return new String[0];
if(Environment.getExternalStorageState().equals("mounted")) {
File var3 = Environment.getExternalStorageDirectory();
if((var3 = new File(var3.toString() + "/Android/obb/" + var1)).exists()) {
String var4;
if(var6 & 0) {
var4 = var3 + File.separator + "main." + var6 + "." + var1 + ".obb";
if((new File(var4)).isFile()) {
var2.add(var4);
if(var6 & 0) {
var4 = var3 + File.separator + "patch." + var6 + "." + var1 + ".obb";
if((new File(var4)).isFile()) {
var2.add(var4);
String[] var7 = new String[var2.size()];
var2.toArray(var7);
return var7;
其中有个 obb 文件后缀。Google 之后发现,这个文件是用来扩展 APK 资源的。看来 nativeFile 这个接口就是 Unity 从 Java 层将存在资源文件的压缩包路径传入 native 层的接口。
知道原理之后,实现就很简单了,也有很多的实现方法,可以需要根据不同的业务需求进行设计。下面是我想到的一种方式:
打包 APK 时,导出 Android Project(一般接入SDK的游戏都会这样打包)。将 new UnityPlayer 修改为类似以下代码:
String path_to_assets_ // 下面会说明
boolean update = check_update(); // 检查是否有更新,或者是否第一次运行
download_update(); // 是的话从网络加载 zip 并且存放至 path_to_assets_zip
mUnityPlayer = new UnityPlayer(this);
Method method = mUnityPlayer.getClass().getDeclaredMethod("nativeFile", String.class);
method.setAccessible(true);
method.invoke(mUnityPlayer, path_to_assets_zip);
} catch (Exception e) {
e.printStackTrace();
注意,检查更新和下载过程完成之后才能构造 UnityPlayer。另外,invoke method 的时候,传入的参数是一个路径,这个路径指向的需要是一个与 APK 文件压缩方式相同的压缩包,压缩包中存放需要更新的文件。
然后打包生成 APK,复制出另一个 APK,我们称为 APK2,然后用压缩软件,例如 7-zip 打开 APK2,将 assets/bin/Data 目录下除了 settings.xml 文件之外的全部文件删除,然后保存 APK2。此时的 APK2 仍然是一个可以安装运行正常签名的 APK2,但是不包含任何资源文件和编译成 DLL 的 C# 代码,这个 APK2 就是可以发给渠道的安装包。而复制前的完整 APK 其实就是网络更新的资源和代码,为了减少下载的大小,可以将这个 APK 中除了 assets 目录以外的文件和目录全部删除。
以后的版本更新,就可以用 Unity 打包出 APK,然后删除掉除了 assets 目录以外的文件和目录,就OK了。如果需要的话,还可以和以前版本进行差分,生成差分文件,减少用户的下载。
上面我提出的这种方法,一方面可以完成动态更新,一方面也减小了 APK 安装包,但是也带来一个弊端,就是用户在安装完游戏之后不能马上玩,必须从网络再下载一个资源包才能进入游戏。虽然现在市面上已经有很多大厂的游戏也是这么做的(这里吐槽一下网易的《天下》,竟然要下载几百M的资源才能进游戏),但是对于用户体验来说确实是一个非常大的短板。但是我觉得可能还是有办法能解决的,因为 nativeFile 这个方法在 Unity 本身也会多次调用,所以肯定存在优先级的问题,只要多尝试几次,推测出 Unity 内部是怎样的一个优先级来读取文件的,就能做到替换更新。
转载请注明出处:
Write a Comment}

我要回帖

更多关于 dll文件用什么软件打开 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信