2017-03-15 9 views
1

私はXamarinアンドロイドアプリを構築しています。md5が間違っているためクラスが見つかりません

xamarinのアップデート後、ビルドエラーが発生します。私はそれがまったく関連しているかどうかは分かりませんが、今までに働いたことは今例外をスローします:ClassNotFoundException。クラスが存在し、適切なアクティビティです。その地域には全く変化はなかった。

私はその点で多くのSOスレッドを見てきましたが、それらはすべてソリューションのクリーンアップ、ビルドフォルダの削除などを提案しています。それは残念なことに私を助けません。

は私が実現すると、例外メッセージ W/monodroid(4201): JNIEnv.FindClass(Type) caught unexpected exception: Java.Lang.ClassNotFoundException: md56629fa8edd4a41a77563f74c5f9a5f792.MainActivityでmd5の部分はMainActivity.classは(md56b5cfc81a7b5c4227a0c9a4dcb7dab856)に存在するフォルダと同じではないということです。そのフォルダを削除すると、ビルド中に新しいフォルダが生成されます。そのmd5は再び異なっている。しかし、以前と同じ古いmd5を求めて、例外が再び現れます。

私の質問:

1)私はJNIEnvのが右のMD5のために見えるように何ができますか?これらのMD5が生成され、どのように

2)と、なぜ

感謝。

答えて

3

明示的に名前を付けない限り、XamarinはAndroid Callable Wrapper(ACW)を持つすべてのタイプのMD5サムを生成します。私はこれが他のタイプとの衝突を避けるために行われていると考えています。同じタイプのパッケージ名でも使用できます。これらはビルド時に生成されます。 Java.Lang.Objectから継承タイプに自分の名前を設定するために

は、これらはActivityAdapterViewと、より多くのような種類があります。

[Activity(Label = "MyActivity", Name = "my.cool.package.MyActivity")] 
public class MyActivity : Activity 
{ 

} 
:あなたは、代わり Activity属性に Nameプロパティを使用できるよう Activityとしてクラスについて

[Register("my.cool.package.MyTypeName")] 
public class MyTypeName : SomeJavaType 
{ 

} 

:あなたは、単にあなたのクラスにRegister属性を追加します

関連する問題