我需要创建一个使用OpenCV库的Android应用程序,我想只使用命令行(linux)。在开始之前,我想要了解创建使用库的项目,但是我无法引用我创建的示例库。我可以构建默认的Android HelloWorld项目并在我的设备上运行它以解决问题,我只是需要有关库的帮助。
我为应用和库创建了一个根目录和文件夹:
mkdir TestProject
mkdir TestProject/TestApp
mkdir TestProject/TestLib
然后我创建了项目和库:
android create project --target 1 --gradle --gradle-version 2.4 --name TestApp --path ~/Projects/TestProject/TestApp/ --activity MyActivity --package com.example.testapp
android create lib-project --target 1 --gradle --gradle-version 2.4 --name TestLib --path ~/Projects/TestProject/TestLib --package com.example.testlib
我将'settings.gradle'添加到根目录,在'settings.gradle'中我有include 'TestApp', 'TestLib'
我不确定我是否需要build.gradle文件。我还将'TestLib'依赖项添加到'TestApp / build.gradle'文件中:
dependencies {
compile project(':TestLib')
}
如果我尝试使用./TestApp/gradlew assembleDebug
和adb install /TestApp/build/output/apk/TestApp-debug.apk
我的项目构建,我可以在手机上运行应用程序(虽然有两个活动,其中一个不起作用),但我不知道认为这种设置是正确的。
如果我尝试在MyActivity.java中导入TestApp的库...
package com.example.testapp;
import android.app.Activity;
import android.os.Bundle;
import com.example.TestLib;
public class MyActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
我收到此错误:
/TestProject/TestApp/src/main/java/com/example/testapp/
MyActivity.java:5: error: cannot find symbol
import com.example.TestLib;
^
symbol: class TestLib
location: package com.example
1 error
:TestApp:compileDebugJava FAILED
我猜我没有设置识别库所需的东西。或许我没有正确创建库。我尝试按照谷歌Android教程从命令行添加库,但看起来他们使用Ant而不是Gradle。我可能会尝试这样做,但我听说Gradle应该让我的生活变得更加轻松......
编辑:
我尝试过使用Ant,但我甚至无法构建项目。在项目目录中运行ant debug install
后收到以下错误:
BUILD FAILED
/home/steven/Libraries/android-sdk-linux/tools/ant/build.xml:649: The
following error occurred while executing this line:
/home/steven/Libraries/android-sdk-linux/tools/ant/build.xml:694:
Execute failed: java.io.IOException: Cannot run program
"/home/steven/Projects/WorkPlz/${aapt}": error=2, No such file or
directory
答案 0 :(得分:0)
我终于能够创建一个库并在我的Android项目中使用它!以下链接很有帮助:
https://docs.gradle.org/current/userguide/multi_project_builds.html
整个过程让我明白为什么大多数人只使用Ecipse或Adnroid Studio。但如果其他人想要尝试这个,我将包含一个指向我的示例项目的链接。它应该澄清一切是如何运作的。
现在我终于可以开始工作了!