Je suis un peu un noob quand il s'agit de développement Android, et je suis habitué au développement Windows natif dans Visual Studio, et je tiens à porter sur une application de test basée sur la console stdout de Windows à Android. J'ai un projet APK Java qui fait référence à un projet d'objet partagé, qui lui-même fait référence à un autre objet partagé. Ce référencement objet partagé imbriqué provoque apparemment un accident avant que je puisse entrer dans un de mon code natif, comme ceci:Visual Studio 2015 natif Android C++ imbriqué objet partagé référence provoque des accidents
Exception lancée: java.lang.UnsatisfiedLinkError
pile d'appel:
> android.app.NativeActivity.onCreate(android.os.Bundle savedInstanceState) Line 182 Java
android.app.Activity.performCreate(android.os.Bundle icicle) Line 6679 Java
android.app.Instrumentation.callActivityOnCreate(android.app.Activity activity, android.os.Bundle icicle) Line 1118 Java
android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord r, android.content.Intent customIntent) Line 2618 Java
android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord r, android.content.Intent customIntent, java.lang.String reason) Line 2726 Java
android.app.ActivityThread.-wrap12(android.app.ActivityThread , android.app.ActivityThread$ActivityClientRecord r, android.content.Intent customIntent, java.lang.String reason) Java
android.app.ActivityThread$H.handleMessage(android.os.Message msg) Line 1477 Java
android.os.Handler.dispatchMessage(android.os.Message msg) Line 102 Java
android.os.Looper.loop Line 154 Java
android.app.ActivityThread.main(java.lang.String[] args) Line 6119 Java
java.lang.reflect.Method.invoke Java
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() Line 886 Java
com.android.internal.os.ZygoteInit.main(java.lang.String[] argv) Line 776 Java
Je avons mis en place une fonction ANativeActivity_onCreate dans ma section maternelle comme ceci:
void ANativeActivity_onCreate(ANativeActivity* activity, void* savedState, size_t savedStateSize)
{
printf("hello?");
}
Le crash se produit en Java avant que cette fonction native peut entrer éd. Cela dit, la fonction sera très bien entrée si je supprime sa référence de dépendance sur l'autre projet objet partagé dans la solution, mais bien sûr, le problème est que j'ai besoin d'utiliser ce projet d'objet partagé si je veux l'avoir quelque chose de plus utile que cela.
Je n'ai ajouté aucun code Java dans le projet APK, ce n'est donc qu'un modèle à part entière de Visual Studio.
Je vous recommande fortement de vous attaquer à cela en tant qu'application Android, puis d'utiliser le langage C natif dans l'application Java, plutôt que de créer une application Android en mode natif la première fois. –