小编Phi*_*ens的帖子

从C#访问C++静态方法

假设您有以下C++代码:

extern "C" {
    void testA(int a, float b) {
    }

    static void testB(int a, float b){
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在我的C#项目中使用DllImport以下方法访问它:

class PlatformInvokeTest
{
    [DllImport("test.so")]
    public static extern void testA(int a, float b);
    [DllImport("test.so")]
    internal static extern void testB(int a, float b);

    public static void Main() 
    {
        testA(0, 1.0f);
        testB(0, 1.0f);
    }
}
Run Code Online (Sandbox Code Playgroud)

这非常适用testA,但testB无法抛出EntryPointNotFoundException.

我可以testB从我的C#代码访问吗?怎么样?

c# c++ dllimport entrypointnotfoundexcept

11
推荐指数
1
解决办法
522
查看次数

Unity Xcode项目PlayerSettings_GetBundleIdentifier

我目前正在尝试从Unity构建iOS应用程序,但仍然遇到这4个错误:

Undefined symbols for architecture arm64:
"_utilityBundleIdentifier", referenced from:
      _NativeBinding_utilityBundleIdentifier_m3566456099 in Bulk_Assembly-CSharp-firstpass_4.o
      _NativeBinding_GetBundleIdentifier_m2869188113 in Bulk_Assembly-CSharp-firstpass_4.o
      _PlayerSettings_GetBundleIdentifier_m1189967083 in Bulk_Assembly-CSharp-firstpass_4.o
     (maybe you meant: _NativeBinding_utilityBundleIdentifier_m3566456099)
  "_utilityBundleVersion", referenced from:
      _NativeBinding_utilityBundleVersion_m3211654534 in Bulk_Assembly-CSharp-firstpass_4.o
      _NativeBinding_GetBundleVersion_m3758909934 in Bulk_Assembly-CSharp-firstpass_4.o
      _PlayerSettings_GetBundleVersion_m1248687572 in Bulk_Assembly-CSharp-firstpass_4.o
     (maybe you meant: _NativeBinding_utilityBundleVersion_m3211654534)
  "_debugProLogMessage", referenced from:
      _NativeBinding_debugProLogMessage_m135661794 in Bulk_Assembly-CSharp-firstpass_2.o
     (maybe you meant: _NativeBinding_debugProLogMessage_m135661794)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

退出代码1 - 体系结构arm64的未定义符号通常指向一个尚未包含的框架,但这些引用指向PlayerSettings_GetBundleIdentifier,这是我可以告诉Unity属性的.

此外,当在XCode中设置包标识符,版本和构建时:

Xcode Bundle Identfier

这些是其他链接器标志 其他链接器标志

这个错误是什么意思?我是否忘记在Unity或XCode设置中包含一个框架,哪个或哪个有问题?

xcode bundle unity-game-engine bundle-identifier

7
推荐指数
1
解决办法
332
查看次数

当调用IntPtr构造函数时,Xamarin Android会执行OnCreateView吗?

我知道Xamarin Android中的构造函数难度,如下所述: 没有找到构造函数...(System.IntPtr,Android.Runtime.JniHandleOwnership)

以及我在应用程序中创建的所有片段和活动以及其他自定义视图都会导入此构造函数.

但有时null reference exception会抛出一个OnCreateView方法.例:

public class TestView: Android.Support.V4.App.Fragment{

    public TestClass _testClass;

    public TestView (TestClass testClass)
    {
        this._testClass = testClass;
    }

    public TestView(IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer) : base(javaReference, transfer)
    {
    }

    public override Android.Views.View OnCreateView (Android.Views.LayoutInflater inflater, Android.Views.ViewGroup container, Android.OS.Bundle savedInstanceState)
    {
        View view = inflater.Inflate (Resource.Layout.Fragment_TestView, container, false);

        _testClass.ExecuteTestMethod();

        return view;
    }

}
Run Code Online (Sandbox Code Playgroud)

这一段代码抛出一个null reference exceptionOnCreateView,occassionaly.这很少发生,从来没有直接从代码创建视图然后测试它.

现在很明显,此代码中唯一可以抛出异常的点是_testClass变量.所以现在显然我的问题是,在调用构造函数时是否OncreateView也执行了该方法javaReference

c# android xamarin.android xamarin

7
推荐指数
1
解决办法
368
查看次数

Enterprise App Single App Mode并不总是自动启动

我目前遇到的问题是在单应用程序模式下运行的企业应用程序.使用的设备是运行iOS 9.3.2和9.3.5的iPad Mini.平板电脑受到监督,我目前使用的MDM是思科的Meraki.

当平板电脑在应用程序中重新插入时关闭并应自动重启,但情况并非总是如此.大约1/4的应用程序根本无法启动,平板电脑卡在操作系统的主屏幕上.你不能再使用平板电脑做任何事情,除了重启整个平板电脑的强制重启,然后几乎总是从一开始就激活应用程序,但情况并非如此.

我的问题显然是如何解决这个问题,这是iOS 9.3上单应用模式的已知问题吗?

mdm ios

6
推荐指数
1
解决办法
255
查看次数

TextureView TranslationX&Y在API 23上没有预期的行为

目前我正在使用相机播放器textureview来渲染我的相机.因为预览可以有任何维度,所以我创建了一些自定义代码来在调用时改变textureview OnSurfaceTextureUpdated:

    void updateTextureMatrix(int width, int height) {
        Display display = WindowManager.DefaultDisplay;
        var isPortrait = (display.Rotation == SurfaceOrientation.Rotation0 || display.Rotation == SurfaceOrientation.Rotation180);

        int previewWidth = orgPreviewWidth;
        int previewHeight = orgPreviewHeight;

        if(isPortrait) {
            previewWidth = orgPreviewHeight;
            previewHeight = orgPreviewWidth;
        }

        // determine which part to crop
        float widthRatio = (float)width / previewWidth;
        float heightRatio = (float)height / previewHeight;

        float scaleX;
        float scaleY;

        if(widthRatio > heightRatio) {
            // height must be cropped
            scaleX = 1;
            scaleY = widthRatio * …
Run Code Online (Sandbox Code Playgroud)

android translation xamarin textureview

5
推荐指数
1
解决办法
264
查看次数

为什么Logcat称为LogCAT

我知道如何使用Logcat及其有用的内容,但我想知道为什么Logcat被称为Logcat.log-part很明显,但-cat部分不是.

任何人都有任何想法?

logging android cat logcat

4
推荐指数
1
解决办法
821
查看次数