簡體   English   中英

為Android項目創建和引用庫(使用命令行和gradle)

[英]Creating and referencing a library for Android project (using command line and gradle)

我需要創建一個使用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 assembleDebugadb 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

我猜我沒有設置識別圖書館所需的內容。 也許我沒有正確創建庫。 我嘗試按照Google 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

我終於能夠創建一個庫並在我的Android項目中使用它! 以下鏈接很有幫助:

http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Dependencies-Android-Libraries-and-Multi-project-setup

https://docs.gradle.org/current/userguide/multi_project_builds.html

http://www.petrikainulainen.net/programming/gradle/getting-started-with-gradle-creating-a-multi-project-build/

這整個過程使我明白了為什么大多數人只使用Ecipse或Adnroid Studio。 但是,如果其他人想嘗試一下,我將提供指向我的示例項目的鏈接。 它應該闡明一切工作原理。

示例項目: https//drive.google.com/folderview?id = 0B2nWL2e8v6g-fnVuaEJHMWYyeGd5RXBIT0M5bjc5M3hPaHdnalJpNXVhVXRQVkVHZ2JtOEU&usp = sharing

現在我終於可以開始工作了!

暫無
暫無

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

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