2011-12-26 11 views
14

Wychodząc z czystym projektem stworzonym z:Ant nie przebudowa Android aplikacji z `mrówek debugowania install`

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

Kiedy biegnę ant debug install i otworzyć aplikację w moim emulatora, widzę (zgodnie z oczekiwaniami)

Emulator screenshot from initial build

Oto, gdzie idzie źle. Teraz zmieniam coś trywialnego w aplikacji. W tym przykładzie, mam zamiar usunąć wywołanie setContentView od głównej działalności, więc wygląda to tak:

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 
    } 
} 

Teraz przebudować aplikację z ant debug install i uruchomić go w emulatorze. Widzę to:

Emulator screenshot after rebuild

To jest złe. Właśnie usunąłem tekst z moją poprzednią edycją. Jeśli robię ant clean przed ant debug install, uzyskać oczekiwany rezultat:

Expected result after rebuild

nie chcę mieć do uruchomienia ant clean przed każdym czasie biegnę ant debug install. W jaki sposób mogę sprawić, żeby ant rzeczywiście przebudowała program, nie uruchamiając za każdym razem ant clean?


Szczegóły:

Oto wyjście z przeczuciom 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 

Oto wyjście z drugiego ant debug install po EDIT:

$ 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 

Zauważmy, że wszystkie kroki wydają się uważać, że nic nie zmieniłem.

+0

identyczny problem tu odkąd przeszedłem do nowego laptopa, próbuje dowiedzieć się, co jest inna .. Korzystanie sdk r16 z ant 1.8.2. – brk3

+0

Ktoś przetestował, czy nadal dzieje się z najnowszą aktualizacją r17? – brk3

+1

Zgodnie z bugtrackerem, został on naprawiony w nowym r17 http://code.google.com/p/android/issues/detail?id=22948 – HighCat

Odpowiedz

5
+0

Dzięki za bezpośrednie linki. Zaoszczędziłem trochę czasu – Warpspace

3

Pytałem o to w # android-dev, najwyraźniej nie jest to błąd w sdk r16 który łamie i czynności:

21:25 < PFN> Mam problem z dokładną że R16 SDK
21 : 25 < PFN> odpowiedź jest usunięcie classes.dex i yourapp-debug.apk przed każdym ant debugowania

Niestety ta poprawka nie wydają się działać tak wydaje utknęliśmy z konieczności czystą kompilację każdego czas.

+0

Twoja poprawka nie działa dla mnie (usuwanie bin/classes.dex i bin/x-debug.apk), ale cieszę się, że nie jestem jedynym z tym problemem. – Snowball

+0

Niestety okazuje się, że to nie działa dla mnie, więc zaktualizowałem komentarz, aby to odzwierciedlić. Po prostu cieszę się, że wiem, że nie tylko ja! – brk3

0

Musisz zaktualizować test- projekt dla zmian, które mają zostać odzwierciedlone, a następnie wykonaj instalację antygadunkową 1. ~/Android SDK/tools/android aktualizacja test-projektu -m ../SampleProject/ -p ../SampleProjectTest/ 2. mrówka debug zainstalować

0

Oto rozwiązanie, które działa na mnie:

  1. Skopiuj swoje miejsce pracy w innej lokalizacji
  2. usunąć wszystkie projekty w bieżącym obszarze roboczym OSTROŻNIE nie należy usuwać na dysku
  3. otworzyć terminal i wpisz następujące 4.Close Eclipse.

    cd /home/user/workspace/.metadata/.plugins 
    rm -rf org.eclipse.core.resources 
    
    • start Eclipse
    • Do Plik-> Importuj
    • General-> Istniejące projektów na Workspace
    • Kliknij "Wybierz katalog główny" pole i przejdź do każdego podfolderu w folderze obszaru roboczego, i importuj.
Powiązane problemy