GVKun编程网logo

c# – 当我使用非共享运行时构建Monodroid项目时,获取编码失败(vb中对非共享成员的引用要求对象引用)

12

本文将介绍c#–当我使用非共享运行时构建Monodroid项目时,获取编码失败的详细情况,特别是关于vb中对非共享成员的引用要求对象引用的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面

本文将介绍c# – 当我使用非共享运行时构建Monodroid项目时,获取编码失败的详细情况,特别是关于vb中对非共享成员的引用要求对象引用的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Android NDK:使用预构建的共享库时的C运行时限制、Android Studio – 使用依赖于另一个Android库的Android库构建Android项目、android – Monodroid – Monodevelop在部署到设备时擦除用户数据、android – MonoTouch / MonoDroid服务层不兼容?的知识。

本文目录一览:

c# – 当我使用非共享运行时构建Monodroid项目时,获取编码失败(vb中对非共享成员的引用要求对象引用)

c# – 当我使用非共享运行时构建Monodroid项目时,获取编码失败(vb中对非共享成员的引用要求对象引用)

我想在我的Monodroid应用程序中使用DotNetZip库.当我启用Shared Runtime构建选项时,一切似乎都能正常工作.当我禁用共享运行时,该行
static System.Text.Encoding ibm437 = System.Text.Encoding.GetEncoding("IBM437");

生成异常(不支持编码名称’IBM437′).我已经检查了“Additional Supported Encodings”列表中的每个框,但似乎没有帮助.有人有主意吗?

解决方法

我有同样的问题.

首先,确保在项目属性中添加了“West”编码:

Xamarin Internationalization

如果这不起作用,问题是所需的dll不会被复制到.apk的程序集文件夹中.这应该自动发生,但事实并非如此.我提交了一个错误,所以你可以看看它是否已被修复:

Mono for Android / Xamarin Bugzilla

如果没有,这是一个适合我的解决方法(来自Xamarin):

>手动添加对I18N.dll和I18N.West.dll的引用
>为两个dll设置’复制本地’属性为’true’
>添加以下虚拟代码以将2个dll添加到.apk

var ignore = new I18N.West.CP437();

>确保’链接’设置为’无’

希望这可以帮助!

Android NDK:使用预构建的共享库时的C运行时限制

Android NDK:使用预构建的共享库时的C运行时限制

我有一个使用gnustl_static作为c运行时的项目,该项目在Application.mk中全局设置.

在该项目中,我现在想包括一个来自第三方的预构建共享库,该库实现了某些功能.为此,我使用了NDK构建系统提供的PREBUILT_SHARED_LIBRARY机制:

include $(CLEAR_VARS)
LOCAL_MODULE := xyzAPI
LOCAL_SRC_FILES := libxyz-api.so
include $(PREBUILT_SHARED_LIBRARY)

然后在主要的Android.mk中使用它

LOCAL_SHARED_LIBRARIES += xyzAPI

从第三方开始,我知道libxyz-api.so是使用c _shared运行时创建的.

问题1:我是否需要关心我的依赖库是用其他运行时构建的事实?如果是,这是否意味着我必须将整个项目移至c _shared?

问题2:由于依赖项xyzAPI是使用c _shared运行时构建的,我现在是否必须在Java方面加载c _shared(即System.loadLibrary(“ c _shared”);)?

解决方法:

>这绝对是一个有效的担忧.在项目中使用不同的c运行时不是不可能的,但是棘手且危险.
>从jb-mr2(API级别18)开始,系统将为您执行此操作(请参阅https://code.google.com/p/android/issues/detail?id=34416).但是,您有责任在APK中打包相关的.so文件,包括所有相关的ABI版本.

总而言之,我认为切换到c _shared比监视所有可能的失败更容易.

Android Studio – 使用依赖于另一个Android库的Android库构建Android项目

Android Studio – 使用依赖于另一个Android库的Android库构建Android项目

我需要使用Gradle构建一个依赖于Android库项目A的Android项目,该项目取决于另一个Android库项目B.

到目前为止,我有以下内容:

Android项目:

的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android'

dependencies {
    compile project(':LibA')
}

android {
    compileSdkVersion 7
    buildToolsversion "17.0.0"
}

manifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.cyborg.template"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="7" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name="com.cyborg.template.MainActivity"
            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>

</manifest>

Android库A:

的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android-library'

dependencies {
    compile project(':LibB')
}


android {
    compileSdkVersion 7
    buildToolsversion "17.0.0"
} 

manifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.lib.project.a"
          android:versionCode="1"
          android:versionName="1.0">

    <uses-sdk
            android:minSdkVersion="7"
            android:targetSdkVersion="7"/>

</manifest>

Android库B:

的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion 7
    buildToolsversion "17.0.0"
} 

manifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.lib.project.b"
          android:versionCode="1"
          android:versionName="1.0">

    <uses-sdk
            android:minSdkVersion="7"
            android:targetSdkVersion="7"/>

</manifest>

在尝试构建Android项目时,Android studio报告了以下错误:

Gradle: Execution Failed for task ':LibA:processDebugManifest'.
  > Manifest merging Failed. See console for more info.

那个控制台在哪里我想搜索有关错误的更多信息?

我发现了一些关于这个错误的问题,但它似乎与我的情况不一样.

启示?

谢谢,
亚当.

解决方法:

该库的清单文件当前必须具有< application />节点,即使它是空的.

这是我们将在某些时候删除的限制,但现在,只需添加它.

android – Monodroid – Monodevelop在部署到设备时擦除用户数据

android – Monodroid – Monodevelop在部署到设备时擦除用户数据

使用Mono for Android,Monodevelop 2.8.6.5

部署到真实设备(也喜欢模拟器)总是擦除用户数据(文件,共享首选项,sqlite表等).有什么办法可以预防吗?

Visual Studio在这里解决了这个问题(https://stackoverflow.com/a/7669912/792367),但我找不到MonoDevelop的解决方案.

解决方法:

MonoDevelop上的Mono for Android已经有几个月了.它不会在重新部署时擦除用户数据,如果启用了“快速部署”选项,它甚至不会发送整个包,只发送已更改的程序集.您需要检查已安装的Android版本的MonoDevelop和Mono,并确保它们是最新的.

android – MonoTouch / MonoDroid服务层不兼容?

android – MonoTouch / MonoDroid服务层不兼容?

我们已经开始构建跨平台的 Android / iOS应用程序,之前只在MonoTouch中构建.我们正在评估MonoDroid.

我们的应用程序需要使用JSON,我们希望使用ServiceStack. Xamarin有一个ServiceStack分支,我们正在使用它 – https://github.com/xamarin/ServiceStack

我们希望有一个共同的项目负责GET和POST JSON. Xamarin的ServiceStack具有适用于Android和iOS的不同DLL.我们如何拥有一个项目并使用ServiceStack来获取我们的JSON?

我们愿意接受其他选择以统一的方式获得JSON吗?

解决方法

总的来说,为MonoTouch编译的托管* .dll不依赖于MonoTouch特定类型,与Mono for Android项目兼容.

ServiceStack就是一个很好的例子.我个人将它用于跨Xamarin移动框架产品的多个项目.

作为一般规则,我倾向于使用带有异步方法的部分类(如FooProjectRestClient)将所有调用封装到我的Web服务中.然后,如果存在任何需要发生的分段,则可以使用#if defs在共享类中进行.

关于c# – 当我使用非共享运行时构建Monodroid项目时,获取编码失败vb中对非共享成员的引用要求对象引用的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Android NDK:使用预构建的共享库时的C运行时限制、Android Studio – 使用依赖于另一个Android库的Android库构建Android项目、android – Monodroid – Monodevelop在部署到设备时擦除用户数据、android – MonoTouch / MonoDroid服务层不兼容?等相关内容,可以在本站寻找。

本文标签: