2013-07-17 78 views
3

我有一個帶本地庫的eclipse項目,我需要將此項目複製到另一臺機器上。導入現有Android項目導致JNI文件夾中出現很多「錯誤」

我應對這個項目文件夾,並使用「File-> New-> Android Project from Existing Code」。我也使用勾號「複製項目到工作區」。

然後,我去jni文件夾,看到很多錯誤,如「未解決的包含:」,「類型'JNICALL'無法解決」,「方法'GetStringUTFChars'無法解析」等。所有。

我試圖編譯這個jni庫。沒問題。它已編譯,但我仍然看到我以前看到的所有錯誤。 我試圖啓動android應用程序,它說我的項目包含錯誤。

這個問題只與本機庫有關。

如何解決這個問題?

回答

3

轉到項目Propriets >> C/C++通用>>路徑和符號,並添加:

"/home/ademar/android-ndk-r9/platforms/android-18/arch-arm/usr/include" 

可以包括德x86和MIPS版本太多:

"/home/ademar/android-ndk-r9/platforms/android-18/arch-x86/usr/include" 
"/home/ademar/android-ndk-r9/platforms/android-18/arch-mips/usr/include" 
1

當你卡住來自Eclipse的這些錯誤消息,您應該簡單地轉到「Problems」視圖並刪除這些消息。清理構建項目,並且消息(希望)不會再次出現。

有時,需要採取更激進的措施,例如打開一個新的工作區(簡單的刪除項目+將其導回可能不夠,因爲某些項目元數據在刪除時不會被刪除)。

最後一招是去項目屬性,找到建設者選項卡,並禁用最後掃描儀配置生成器。不幸的是,這也將禁用「公開聲明」和其他智能源導航功能。

1

對於遇到類似問題的其他人,我遇到了此錯誤,因爲我將C樣式的JNI調用複製到cpp文件中。所以,如果這是你的情況下,嘗試改變

const char *utf8 = (*env)->GetStringUTFChars(env, filename, NULL); 

const char *utf8 = env->GetStringUTFChars(filename, NULL); 

然後清潔/內部版本。

相關問題