2015-02-08 27 views
0

在Eclipse中導入OpenCV庫後,我遇到了一個錯誤。我想我做了我應該做的,但也許我錯過了一些東西。樣本沒有錯誤,但是我的應用程序和OpenCV Library-2.4.10一樣。將Android中的OpenCV庫導入到Eclipse後出錯

這裏是我作爲輸出:

問題

Description Resource Path Location Type 
make: *** Android NDK: Aborting... . Stop. Cammect  line 209, external location: /home/crash-id/Development/SDK/android-ndk-r10c/build/core/add-application.mk C/C++ Problem 
make: *** Android NDK: Aborting... . Stop. OpenCV Library - 2.4.10  line 209, external location: /home/crash-id/Development/SDK/android-ndk-r10c/build/core/add-application.mk C/C++ Problem 
make: *** Android NDK: Aborting... . Stop. src  line 209, external location: /home/crash-id/Development/SDK/android-ndk-r10c/build/core/add-application.mk C/C++ Problem 
make: *** No rule to make target `clean'. Stop. RemoteSystemsTempFiles   C/C++ Problem 

控制檯:

22:21:19 **** Clean-only build of configuration Default for project OpenCV Library - 2.4.10 **** 
/home/crash-id/Development/SDK/android-ndk-r10c/ndk-build clean 
Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml  
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk  
/home/crash-id/Development/SDK/android-ndk-r10c/build/core/add-application.mk:209: *** Android NDK: Aborting... . Stop. 

22:21:19 Build Finished (took 132ms) 

錯誤日誌:

eclipse.buildId=4.4.1.M20140925-0400 
java.version=1.8.0_31 
java.vendor=Oracle Corporation 
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US 
Framework arguments: -product org.eclipse.epp.package.jee.product 
Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product 

org.eclipse.jdt.core 
Error 
Sun Feb 08 22:21:23 EET 2015 
Invalid ZIP archive: /home/crash-id/Development/SDK/adt-bundle-linux-x86_64-20140702/sdk/extras/android/support/v7/appcompat/bin/android-support-v7-appcompat.jar 
eclipse.buildId=4.4.1.M20140925-0400 
java.version=1.8.0_31 
java.vendor=Oracle Corporation 
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US 
Framework arguments: -product org.eclipse.epp.package.jee.product 
Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product 

org.eclipse.cdt.core 
Error 
Sun Feb 08 21:45:35 EET 2015 
Error: Cannot run program "/ndk-build": Unknown reason 

java.io.IOException: Cannot run program "/ndk-build": Unknown reason 
    at org.eclipse.cdt.utils.spawner.Spawner.exec(Spawner.java:349) 
    at org.eclipse.cdt.utils.spawner.Spawner.<init>(Spawner.java:91) 
    at org.eclipse.cdt.utils.spawner.ProcessFactory.exec(ProcessFactory.java:91) 
    at org.eclipse.cdt.core.CommandLauncher.execute(CommandLauncher.java:194) 
    at org.eclipse.cdt.internal.core.BuildRunnerHelper.build(BuildRunnerHelper.java:263) 
    at org.eclipse.cdt.managedbuilder.core.ExternalBuildRunner.invokeExternalBuild(ExternalBuildRunner.java:128) 
    at org.eclipse.cdt.managedbuilder.core.ExternalBuildRunner.invokeBuild(ExternalBuildRunner.java:72) 
    at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:753) 
    at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:510) 
    at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:459) 
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:734) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206) 
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246) 
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302) 
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358) 
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381) 
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) 
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 

eclipse.buildId=4.4.1.M20140925-0400 
java.version=1.8.0_31 
java.vendor=Oracle Corporation 
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US 
Framework arguments: -product org.eclipse.epp.package.jee.product 
Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product 

org.eclipse.cdt.core 
Error 
Sun Feb 08 21:45:35 EET 2015 
Error: Cannot run program "/ndk-build": Unknown reason 

java.io.IOException: Cannot run program "/ndk-build": Unknown reason 
    at org.eclipse.cdt.utils.spawner.Spawner.exec(Spawner.java:349) 
    at org.eclipse.cdt.utils.spawner.Spawner.<init>(Spawner.java:91) 
    at org.eclipse.cdt.utils.spawner.ProcessFactory.exec(ProcessFactory.java:91) 
    at org.eclipse.cdt.core.CommandLauncher.execute(CommandLauncher.java:194) 
    at org.eclipse.cdt.internal.core.BuildRunnerHelper.build(BuildRunnerHelper.java:263) 
    at org.eclipse.cdt.managedbuilder.core.ExternalBuildRunner.invokeExternalBuild(ExternalBuildRunner.java:128) 
    at org.eclipse.cdt.managedbuilder.core.ExternalBuildRunner.invokeBuild(ExternalBuildRunner.java:72) 
    at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:753) 
    at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:510) 
    at org.eclipse.cdt.managedbuilder.internal.core.CommonBuilder.build(CommonBuilder.java:459) 
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:734) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206) 
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246) 
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:299) 
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:302) 
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:358) 
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:381) 
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) 
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 

enter image description here

+0

僅當**應用程序**具有JNI部分時才需要使用NDK構建。其他方面,你可以輕易地複製OpenCV庫。請按照這裏的步驟http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#application-development-with-static-initialization – Kiran 2015-02-09 01:10:09

+0

我會有jni的一部分。好的,這是我的應用程序的問題,但爲什麼我的OpenCV Library出現錯誤? – definera 2015-02-09 11:16:31

回答

0

當我更改爲OpenCV Library 2.4.9而不是2.4.10後,錯誤消失了。在我用.mk文件創建jni文件夾後,我的應用程序出錯消失了。

0

從你的錯誤日誌,似乎路徑到你的Android NDK是錯誤的。您可以通過在Eclipse中指定Android NDK ndk-build的完整路徑來更正此問題。

首先,創建一個Build Variable。在Eclipse中,請轉至WindowPreferencesC/C++BuildBuild Variables。添加引用您的Android NDK ndk-build文件的完整路徑的新變量(您可以將其命名爲NDK_ROOT或任何您想要的)。

然後,單擊Apply並點擊EnvironmentPreferences - >C/C++ - >Build - >Environment),並添加您剛剛創建的變量。點擊ApplyOK

之後,右鍵單擊您的Open-CV-Library,然後選擇Properties。導航到C/C++ Build - >Environment並在其中添加新創建的變量。點擊ApplyOK

這應該工作。這就是我固定我的方式。

我希望這會有所幫助。

編輯

另一個修復程序可能是使用2.4.9版本,而不是2.4.10版本,因爲OpenCV的網站上目前的說明是針對2.4.9版本。

+0

謝謝,但ndk構建路徑是正確的。 – definera 2015-02-08 21:07:50

+0

@ Crash-ID好的。另一個修復可能是使用版本2.4.9而不是版本2.4。10,因爲OpenCV網站上的說明適用於2.4.9版本。 – iRuth 2015-02-08 21:14:13

+0

好的,謝謝:)明天我會試試,因爲現在這裏已經很晚了。 – definera 2015-02-08 21:27:13