2016-12-19 69 views
0

當我涉及到Android開發時,我很喜歡noob,並且我習慣於在Visual Studio中進行本機Windows開發,並且我想將端口通過基於stdout控制檯的測試應用程序從Windows到Android。我有一個Java APK項目引用了一個共享對象項目,該項目本身引用了另一個共享對象。此嵌套共享對象引用顯然會導致系統崩潰之前,我可以進入我的任何本地代碼,就像這樣:Visual Studio 2015 Android本地C++嵌套共享對象引用導致崩潰

拋出異常: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 

我VE實施ANativeActivity_onCreate功能在我的家鄉段像這樣:這種原生功能,可輸入之前在Java中發生

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

崩潰編輯。也就是說,如果我在解決方案中刪除其對其他共享對象項目的依賴項引用,該函數就會進入正常狀態,但是當然,問題是如果我需要使用此共享對象項目比這更有用的東西。

我沒有在APK項目中添加任何Java代碼,所以它只是Visual Studio中的一個簡單模板。

+0

我強烈建議您首先將Android作爲Android應用程序解決,然後將本機C用於Java應用程序,而不是首次本機構建Android應用程序。 –

回答

0

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

你有沒有做過任何標準的C#/ C++/C到Java?如果你還沒有這樣做,那麼這是一個比Android更好的開始,至少你會明白本地方法的連接和鏈接是如何執行的。這是我無法提供的幫助,但我強烈建議您在Android中使用控制檯日誌記錄應用程序創建基本的Hello World。它會花你幾個小時來製作和回答很多問題。