簡體   English   中英

Visual Studio 2015 Android本機C ++嵌套的共享庫引用導致崩潰

[英]Visual Studio 2015 Android native C++ nested shared object reference causes crash

在Android開發方面,我有點菜鳥,而且我習慣了在Visual Studio中進行本機Windows開發,並且希望將基於stdout控制台的測試應用程序從Windows移植到Android。 我有一個引用共享對象項目的Java APK項目,該項目本身引用了另一個共享對象。 這種嵌套的共享庫引用顯然會導致崩潰,然后我才能輸入任何本機代碼,如下所示:

引發異常:java.lang.UnsatisfiedLinkError

調用堆棧:

>   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

我在本機部分中實現了ANativeActivity_onCreate函數,如下所示:

void ANativeActivity_onCreate(ANativeActivity* activity, void* savedState, size_t savedStateSize)
{
    printf("hello?");
}

可以在Java中崩潰,然后才能輸入此本機函數。 就是說,如果我刪除解決方案中對另一個共享庫項目的依賴關系引用,就可以很好地輸入該函數,但是,當然,問題在於如果要使用該共享庫項目,則需要使用該共享庫項目。比這更有用的東西。

我在APK項目中根本沒有添加任何Java代碼,因此它只是Visual Studio中的基本模板。

在嘗試構建本機應用程序之前,先熟悉一下Android是個好主意。 至少您會熟悉SDK,框架,Android狀態,轉換和生命周期事件。 如果它位於SDK或本機代碼中,它也將幫助您調試問題所在。

您對Java完成了任何標准的C#/ C ++ / C嗎? 如果您還沒有開始,那么這是比Android更好的起點,至少您將了解如何執行本機方法連接和鏈接。 這是我無法提供的,但是我強烈建議您在Android中使用控制台日志記錄應用程序創建基本的Hello World。 您需要花費幾個小時來做​​出並回答許多問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM