Ant не перестраивает приложение Android с помощью «ant debug install» - PullRequest
14 голосов
/ 26 декабря 2011

Начиная с чистого проекта, созданного с помощью:

android create project -n something -t android-7 -p something -k com.example.something -a Something

Когда я запускаю ant debug install и открываю приложение в моем эмуляторе, я вижу (как и ожидалось)

Emulator screenshot from initial build

Вот где все идет плохо. Теперь я изменю что-то тривиальное в приложении. В этом примере я собираюсь удалить вызов setContentView из основного действия, чтобы он выглядел так:

package com.example.something;
import android.app.Activity;
import android.os.Bundle;
public class Something extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);   REMOVED
    }
}

Теперь я перестраиваю приложение с помощью ant debug install и запускаю его в эмуляторе. Я вижу это:

Emulator screenshot after rebuild

Это неправильно. Я только что удалил текст с моим предыдущим редактированием. Если я сделаю ant clean до ant debug install, я получу ожидаемый результат:

Expected result after rebuild

Я не хочу запускать ant clean перед каждым запуском ant debug install. Как я могу заставить ant на самом деле пересобрать программу без запуска ant clean каждый раз?


подробности:

Вот вывод из начального ant debug install:

$ ant debug install
Buildfile: /home/x/android/something/build.xml

-set-mode-check:

-set-debug-files:

-set-debug-mode:

-debug-obfuscation-check:

-setup:
     [echo] Gathering info for something...
    [setup] Android SDK Tools Revision 16
    [setup] Project Target: Android 2.1
    [setup] API level: 7
    [setup] 
    [setup] ------------------
    [setup] Resolving library dependencies:
    [setup] No library dependencies.
    [setup] 
    [setup] ------------------
    [setup] 
    [setup] WARNING: No minSdkVersion value set. Application will install on all Android versions.

-build-setup:
     [echo] Creating output directories if needed...
    [mkdir] Created dir: /home/x/android/something/bin
    [mkdir] Created dir: /home/x/android/something/bin/res
    [mkdir] Created dir: /home/x/android/something/gen
    [mkdir] Created dir: /home/x/android/something/bin/classes

-pre-build:

-code-gen:
     [echo] ----------
     [echo] Handling aidl files...
     [aidl] No AIDL files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
[renderscript] No RenderScript files to compile.
     [echo] ----------
     [echo] Handling Resources...
     [aapt] Generating resource IDs...

-pre-compile:

-compile:
    [javac] Compiling 2 source files to /home/x/android/something/bin/classes

-post-compile:

-obfuscate:

-dex:
      [dex] Converting compiled files and external libraries into /home/x/android/something/bin/classes.dex...

-crunch:
   [crunch] Crunching PNG Files in source dir: /home/x/android/something/res
   [crunch] To destination dir: /home/x/android/something/bin/res
   [crunch] Crunched 0 PNG files to update cache

-package-resources:
     [aapt] Creating full resource package...

-package:
[apkbuilder] Current build type is different than previous build: forced apkbuilder run.
[apkbuilder] Creating something-debug-unaligned.apk and signing it with a debug key...

-do-debug:
 [zipalign] Running zip align on final apk...
     [echo] Debug Package: /home/x/android/something/bin/something-debug.apk

debug:
[propertyfile] Creating new property file: /home/x/android/something/bin/build.prop
[propertyfile] Updating property file: /home/x/android/something/bin/build.prop
[propertyfile] Updating property file: /home/x/android/something/bin/build.prop
[propertyfile] Updating property file: /home/x/android/something/bin/build.prop

install:
     [echo] Installing /home/x/android/something/bin/something-debug.apk onto default emulator or device...
     [exec] 66 KB/s (4410 bytes in 0.065s)
     [exec]     pkg: /data/local/tmp/something-debug.apk
     [exec] Success

BUILD SUCCESSFUL
Total time: 5 seconds

Вот вывод из второго ant debug install после редактирования:

$ ant debug install
Buildfile: /home/x/android/something/build.xml

-set-mode-check:

-set-debug-files:

-set-debug-mode:

-debug-obfuscation-check:

-setup:
     [echo] Gathering info for something...
    [setup] Android SDK Tools Revision 16
    [setup] Project Target: Android 2.1
    [setup] API level: 7
    [setup] 
    [setup] ------------------
    [setup] Resolving library dependencies:
    [setup] No library dependencies.
    [setup] 
    [setup] ------------------
    [setup] 
    [setup] WARNING: No minSdkVersion value set. Application will install on all Android versions.

-build-setup:
     [echo] Creating output directories if needed...

-pre-build:

-code-gen:
     [echo] ----------
     [echo] Handling aidl files...
     [aidl] No AIDL files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
[renderscript] No RenderScript files to compile.
     [echo] ----------
     [echo] Handling Resources...
     [aapt] No changed resources. R.java and Manifest.java untouched.

-pre-compile:

-compile:
    [javac] Compiling 1 source file to /home/x/android/something/bin/classes

-post-compile:

-obfuscate:

-dex:
      [dex] No new compiled code. No need to convert bytecode to dalvik format.

-crunch:
   [crunch] Crunching PNG Files in source dir: /home/x/android/something/res
   [crunch] To destination dir: /home/x/android/something/bin/res
   [crunch] Crunched 0 PNG files to update cache

-package-resources:
     [aapt] No changed resources or assets. something.ap_ remains untouched

-package:
[apkbuilder] No changes. No need to create apk.

-do-debug:
 [zipalign] No changes. No need to run zip-align on the apk.
     [echo] Debug Package: /home/x/android/something/bin/something-debug.apk

debug:
[propertyfile] Updating property file: /home/x/android/something/bin/build.prop
[propertyfile] Updating property file: /home/x/android/something/bin/build.prop
[propertyfile] Updating property file: /home/x/android/something/bin/build.prop
[propertyfile] Updating property file: /home/x/android/something/bin/build.prop

install:
     [echo] Installing /home/x/android/something/bin/something-debug.apk onto default emulator or device...
     [exec] 88 KB/s (4410 bytes in 0.048s)
     [exec]     pkg: /data/local/tmp/something-debug.apk
     [exec] Success

BUILD SUCCESSFUL
Total time: 3 seconds

Обратите внимание, что все шаги -dex, -package и -debug, кажется, думают, что я ничего не изменил.

Ответы [ 4 ]

5 голосов
/ 07 января 2012

Я только что перешел на SDK r15 - в нем нет такой ошибки.

Загрузки еще есть:http://dl.google.com/android/android-sdk_r15-linux.tgzhttp://dl.google.com/android/android-sdk_r15-windows.ziphttp://dl.google.com/android/installer_r15-windows.exehttp://dl.google.com/android/android-sdk_r15-macosx.zip

Наиболее актуальная проблема в багтрекере для Android для ошибки SDK r16:http://code.google.com/p/android/issues/detail?id=23141

3 голосов
/ 30 декабря 2011

Я спрашивал об этом в # android-dev, по-видимому, в SDK R16 есть ошибка, которая нарушает действия и:

21: 25 У меня точно такая проблема с sdk r16
21:25 ответ состоит в том, чтобы удалить classes.dex и yourapp-debug.apk перед каждой муравьиной отладкой

К сожалению, это исправление не работает, поэтому кажется, что мы застряли с чистой сборкой каждый раз.

0 голосов
/ 14 мая 2013

Вот решение, которое работает для меня:

  1. Скопируйте свое рабочее пространство в другое место
  2. удалить все проекты в текущем рабочем пространстве. ВНИМАНИЕ! Не удалять на DISK
  3. откройте терминал и напишите следующее 4.Закрыть Затмение.

    cd /home/user/workspace/.metadata/.plugins
    rm -rf org.eclipse.core.resources
    
    • Запустить Eclipse
    • Do File-> Import
    • Общее-> Существующие проекты в рабочую область
    • Щелкните поле «Выбрать корневой каталог» и перейдите к каждой подпапке в папке рабочей области и выполните импорт.
0 голосов
/ 10 мая 2013

Вам нужно обновить тест-проект, чтобы изменения отразились, а затем выполнить установку ant debug. 1. ~ / android-sdks / tools / android update test-project -m ../SampleProject/ -p ../SampleProjectTest/ 2. ant отладочная установка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...