Skip to main content

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ์‹œ์Šคํ…œ ์•ฑ ๋นŒ๋“œํ•˜๊ธฐ (์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€)

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์„ ํ•˜๋Š”๋ฐ ๊ธฐ์กด์—๋Š” Eclipse๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ ์ด์ œ๋Š” Android Studio๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‹œ์Šคํ…œ ์•ฑ ๊ฐœ๋ฐœ์„ ํ• ๋•Œ์—” ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ฒ˜๋Ÿผ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹จ์ˆœํžˆ dependencies ์ถ”๊ฐ€ํ•ด์ค€๋‹ค๊ณ  ํ•ด์„œ ๋นŒ๋“œ๊ฐ€ ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. Eclipse์™€ ํฐ ํ‹€์€ ๊ฐ™์œผ๋‚˜ ๋ช‡๊ฐ€์ง€ ์ถ”๊ฐ€ ์ž‘์—…์ด ๋” ํ•„์š”ํ•˜๋”๊ตฐ์š”. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ˆœ์„œ ์„ค์ •, ์ปดํŒŒ์ผ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํด๋ž˜์ŠคํŒจ์Šค ์„ค์ •…

 

Android Studio์—์„œ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ ๋ฐ ์ˆœ์„œ ์„ค์ •

๋จผ์ € ์ค€๋น„ํ•œ “framework.jar” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ค€๋น„ํ•œ ๋’ค “project/app/libs” ํด๋”์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  “project/app/build.gradle” ํŒŒ์ผ์„ ์—ด์–ด “dependencies” ๋ถ€๋ถ„์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ค๋‹ˆ๋‹ค. ์ด๋•Œ ์ฃผ์˜ ํ•  ์ ์€ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ “compile” ์ด ์•„๋‹Œ “provided” ๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ์…”์•ผ ํ•œ๋‹ค๋Š” ์  ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ, Android Studio 3.0 ์ด์ƒ์ด๋ผ๋ฉด “compileOnly” ๋ฅผ ์‚ฌ์šฉํ•ด ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€๋Š” ๋˜์—ˆ์ง€๋งŒ ์•„์ง Android SDK๋ฅผ ๋Œ€์ฒดํ•˜์ง€ ๋ชป ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ œ “framework.jar”๊ฐ€ Android SDK๋ฅผ ๋Œ€์ฒด ํ•  ์ˆ˜ ์žˆ๋„๋ก “project/app/app.iml”์—์„œ “<orderEntry />” ๋ถ€๋ถ„ ์ˆ˜์ •ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์ฃผ์…”๋„ ๋˜์ง€๋งŒ, “build.gradle” ์ด ์ˆ˜์ •๋˜๋ฉด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ํŒŒ์ผ์ด๊ธฐ์— ๋งค๋ฒˆ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •์„ ํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด “preBuild” Task๋ฅผ ์ด์ „์— ์ž‘์—…ํ•œย dependencies ์•„๋ž˜์— ์ถ”๊ฐ€์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ Sync gradle ํ›„ ์‹œ์Šคํ…œ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„์ง Build๋Š” ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

Compile bootstrap classpath์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ „์ฒ˜๋ฆฌ ๋˜๋„๋ก ์„ค์ •

์œ„์—์„œ ์„ค์ •ํ–ˆ๋˜ ์ž‘์—…์„ ํ†ตํ•ด์„œ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ Android SDK๋ณด๋‹ค ๋จผ์ € ์ฒ˜๋ฆฌ๋˜์–ด Editor์—์„œ๋Š” ์ž˜ ๋™์ž‘ํ–ˆ์ง€๋งŒ Build ์‹œ์—๋Š” ์—ฌ์ „ํžˆ Android SDK๊ฐ€ ๋จผ์ € ์ฒ˜๋ฆฌ๋˜์–ด ๋นŒ๋“œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Compile ์‹œ “-Xbootclasspath/p” ์˜ต์…˜์„ ์ฃผ์–ด ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋จผ์ € ์ฒ˜๋ฆฌ ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. “project/build.gradle” ํŒŒ์ผ์„ ์—ด์–ดย “allprojects” ๋ถ€๋ถ„์— ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด compile ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ค๋‹ˆ๋‹ค.

์ด์ œ ์ •์ƒ์ ์œผ๋กœ Build๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ฐธ์กฐ 1:ย http://www.31mins.com/android-studio-build-system-application/

์ฐธ์กฐ 2:ย http://stackoverflow.com/questions/27441398/how-to-put-my-libraries-in-front-of-android-jar-by-editing-build-gradle-in-andro

 

17 thoughts to “์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ์‹œ์Šคํ…œ ์•ฑ ๋นŒ๋“œํ•˜๊ธฐ (์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€)”

  1. ๊ธ€ ๋„์›€์œผ๋กœ ๋นŒ๋“œ๊นŒ์ง€๋Š” ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๊ทผ๋ฐ ํ˜น์‹œ java 8 ๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ๋‚œ์ ์ด ์žˆ์œผ์‹ ๊ฐ€์š”??
    Error:Error converting bytecode to dex:
    Cause: Dex cannot parse version 52 byte code.
    This is caused by library dependencies that have been compiled using Java 8 or above.
    If you are using the ‘java’ gradle plugin in a library submodule add
    targetCompatibility = ‘1.7’
    sourceCompatibility = ‘1.7’
    to that submodule’s build.gradle file.

    Error:Execution failed for task ‘:app:transformClassesWithDexForDebug’.
    > com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Return code 1 for dex process

    ๋นŒ๋“œ๋Š” ๋˜๋Š”๋ฐ, run ์œผ๋กœ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์œ„์™€๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค.

    ํ˜น์‹œ ํ•ด๊ฒฐ ํ•˜์…จ๋‹ค๋ฉด ๊ณต์œ  ๋ถ€ํƒ๋“œ๋ ค๋„ ๋ ๊นŒ์š”??

  2. ์•ˆ๋…•ํ•˜์„ธ์š”?
    ๋นŒ๋“œ๋œ apk ๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š๋„ค์š”.
    ํ˜น์‹œ ์„ค์ •๊ณผ์ •์ด ์ƒ๋žต๋œ๊ฒƒ์ด ์žˆ๋‚˜์š”?

    1. ํ˜„์žฌ ์…‹ํƒ‘๋ฐ•์Šค ๋Ÿฐ์ฒ˜์–ดํ”Œ์„ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
      framework.jar ํŒŒ์ผ์„ ์…‹ํƒ‘๋ฐ•์Šค์—์„œ ๋ณต์‚ฌํ•ด์„œ ์œ„์— ์•Œ๋ ค์ฃผ์‹  ๋ฐฉ๋ฒ•์œผ๋กœ ๋นŒ๋“œ๋ฅผ ํ–ˆ๋”๋‹ˆ
      ์„ค์น˜๊ฐ€ ๋˜์ง€ ์•Š๋„ค์š”. ใ… .ใ… 

      1. ๋นŒ๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋˜์–ด์„œ APK ํŒŒ์ผ์ด ํ™•์ธ ๋˜์—ˆ๋Š”๋ฐ ์„ค์น˜๊ฐ€ ์•ˆ๋œ๋‹ค๋ฉด ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ฒ ๋„ค์š”.
        ๊ธฐ์กด์— ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ž‘ ํŒจํ‚ค์ง€๋ช…์ด๋‚˜ ๋ฒ„์ „์ด ๊ฐ™๋‹ค๋˜์ง€, ์‹œ์Šคํ…œ์•ฑ์ด๋ผ๋ฉด signkey๊ฐ€ ํ‹€๋ฆฌ๋‹ค๋˜์ง€…

    2. ์„ค์น˜๊ณผ์ •์€ ์ƒ๋žต์ด ๋œ๊ฒŒ ๋งž์Šต๋‹ˆ๋‹ค.
      ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค๋ฅผ ํ†ตํ•˜์—ฌ ์•ฑ ๋นŒ๋“œ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋‚ด์šฉ ์ž…๋‹ˆ๋‹ค.

  3. ๋ง์”€ํ•˜์‹ ๋Œ€๋กœ ํ–ˆ๋Š”๋ฐ, ์ œ๊ฐ€ ์ง‘์–ด๋„ฃ์€ framework.jar์— ์žˆ๋Š” class๋ฅผ ์ฐพ์ง€๋ฅผ ๋ชปํ•˜๋„ค์š”. ใ…œ.ใ…ก

    1. dependencies ์„ค์ •์—์„œ provided๋ฅผ complieOnly๋กœ (Android Studio ์ตœ์‹  ๋ฒ„์ „ ์‚ฌ์šฉ์‹œ)
      Compile bootstrap classpath์˜ framework-net.jar๋ฅผ framework.jar๋กœ… (์˜คํƒ€๋„ค์š” ใ… ใ… )
      ํ˜น์‹œ ํ™•์ธ ํ•˜์…จ๋‚˜์š”?

  4. ์•ˆ๋…•ํ•˜์„ธ์š”?
    ์•„๋ž˜ ๋ถ€๋ถ„์—์„œ You cannot create an instance from the abstract interface ‘org.w3c.dom.Node’์ด๋ ‡๊ฒŒ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š”๋ฐ ์™œ๊ทธ๋Ÿด๊นŒ์š”?

    new Node(parsedXml.component[1], ‘orderEntry’, [‘type’: ‘jdk’, ‘jdkName’: sdkString, ‘jdkType’: ‘Android SDK’])

  5. ๊น€ํƒœ์ด ๋ถ„์ฒ˜๋Ÿผ framework.jar ์•ˆ์— ์žˆ๋Š” ๊ฑธ ์ฐพ์ง€ ๋ชปํ•˜๋„ค์š”.. error:cannot find symbol class ..

    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‘ ๊ฐœ ์ด์ƒ ๋„ฃ๊ณ  ์žˆ๊ธด ํ•˜์ง€๋งŒ.. ์ž‘์„ฑํ•˜์‹ ๋Œ€๋กœ ๋˜‘๊ฐ™์ด ๋‹ค ์ ์—ˆ๋Š”๋ฐ๋„
    ์—๋””ํ„ฐ์—์„œ๋Š” ์ž˜๋˜๋Š”๋ฐ ๋นŒ๋“œ๋งŒ ํ•˜๋ฉด ์ €๊ฒŒ ์™œ ๋œจ๋Š”์ง€๋ฅผ ๋ชจ๋ฅด๊ฒŸ์–ด์šฉ..

    options.compilerArgs.add(‘-Xbootclasspath/p:app\\libs\\framework.jar:app\\libs\\framework2.jar:app)

  6. ์œ„์—์„œ :app ์€ ์ž˜๋ชป์ ์—ˆ์Šต๋‹ˆ๋‹น.

    options.compilerArgs.add(โ€˜-Xbootclasspath/p:app\\libs\\framework.jar:app\\libs\\framework2.jar’)

    ๋ˆˆ์”ป๊ณ  ์ฐพ์•„๋„ ์˜คํƒ€๋Š” ์—†๋Š”๊ฒƒ ๊ฐ™์€๋ฐ ์™œ ๋นŒ๋“œ๋งŒ ํ•˜๋ฉด ์ปดํŒŒ์ผ์—๋Ÿฌ์™€ ๋™์‹œ์— ์‹ฌ๋ณผ์„ ์ฐพ์„์ˆ˜ ์—†๋‹ค๊ณ  ๋‚œ๋ฆฌ์ธ์ง€.. ์—๋””ํ„ฐ์—๋Š” ์—๋Ÿฌ๊ฐ€ ์•ˆ๋œจ๋Š”๋ฐ ใ… ใ… 

    1. ๋‘ jar ์‚ฌ์ด๋ฅผ :(์ฝœ๋ก )์ด ์•„๋‹ˆ๋ผ ;(์„ธ๋ฏธ์ฝœ๋ก )์œผ๋กœ ํ•ด๋ณด์…จ๋‚˜์š”?
      windows์˜ ๊ฒฝ์šฐ separator๋ฅผ ;(์„ธ๋ฏธ์ฝœ๋ก )์œผ๋กœ ์•Œ๊ณ  ์žˆ๋„ค์š”. linux๊ฐ€ :(์ฝœ๋ก )์ด๊ตฌ์š”.

      -Xbootclasspath/p:app\\libs\\framework.jar;app\\libs\\framework2.jar

๋Œ“๊ธ€ ๋‚จ๊ธฐ๊ธฐ