本文将介绍c#–当我使用非共享运行时构建Monodroid项目时,获取编码失败的详细情况,特别是关于vb中对非共享成员的引用要求对象引用的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面
本文将介绍c# – 当我使用非共享运行时构建Monodroid项目时,获取编码失败的详细情况,特别是关于vb中对非共享成员的引用要求对象引用的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Android NDK:使用预构建的共享库时的C运行时限制、Android Studio – 使用依赖于另一个Android库的Android库构建Android项目、android – Monodroid – Monodevelop在部署到设备时擦除用户数据、android – MonoTouch / MonoDroid服务层不兼容?的知识。
本文目录一览:- c# – 当我使用非共享运行时构建Monodroid项目时,获取编码失败(vb中对非共享成员的引用要求对象引用)
- Android NDK:使用预构建的共享库时的C运行时限制
- Android Studio – 使用依赖于另一个Android库的Android库构建Android项目
- android – Monodroid – Monodevelop在部署到设备时擦除用户数据
- android – MonoTouch / MonoDroid服务层不兼容?
c# – 当我使用非共享运行时构建Monodroid项目时,获取编码失败(vb中对非共享成员的引用要求对象引用)
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运行时限制
我有一个使用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项目
我需要使用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在部署到设备时擦除用户数据
使用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服务层不兼容?
我们的应用程序需要使用JSON,我们希望使用ServiceStack. Xamarin有一个ServiceStack分支,我们正在使用它 – https://github.com/xamarin/ServiceStack
我们希望有一个共同的项目负责GET和POST JSON. Xamarin的ServiceStack具有适用于Android和iOS的不同DLL.我们如何拥有一个项目并使用ServiceStack来获取我们的JSON?
我们愿意接受其他选择以统一的方式获得JSON吗?
解决方法
ServiceStack就是一个很好的例子.我个人将它用于跨Xamarin移动框架产品的多个项目.
作为一般规则,我倾向于使用带有异步方法的部分类(如FooProjectRestClient)将所有调用封装到我的Web服务中.然后,如果存在任何需要发生的分段,则可以使用#if defs在共享类中进行.
关于c# – 当我使用非共享运行时构建Monodroid项目时,获取编码失败和vb中对非共享成员的引用要求对象引用的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Android NDK:使用预构建的共享库时的C运行时限制、Android Studio – 使用依赖于另一个Android库的Android库构建Android项目、android – Monodroid – Monodevelop在部署到设备时擦除用户数据、android – MonoTouch / MonoDroid服务层不兼容?等相关内容,可以在本站寻找。
本文标签: