clojure-android / lein-droid

A Leiningen plugin for building Clojure/Android projects
Eclipse Public License 1.0
645 stars 56 forks source link

Can't install APK on device (Failure [INSTALL_FAILED_INVALID_APK]) #36

Closed dirkz closed 11 years ago

dirkz commented 11 years ago

System: Mac OS X 10.7.5 (Intel)

I started the emulator with: emulator -avd AVD_for_Nexus_4_by_Google -netspeed full -netdelay none -gpu on&

When I do 'lein droid doall', all seems to go through smoothly, but no app gets installed or started.

If I try to manually install the APK, it fails: adb install ./target/ldroid-debug.apk 1045 KB/s (1951887 bytes in 1.822s) pkg: /data/local/tmp/ldroid-debug.apk Failure [INSTALL_FAILED_INVALID_APK]

This seems to be the problem with 'lein droid doall' too, but why? Yesterday was the first time I used lein-droid, and I remember if occasionally working. Today I have been completely out of luck.

Follows a complete output from 'lein droid doall'

DEBUG=1 lein droid doall Leiningen's classpath: :/Users/zimmd/.lein/self-installs/leiningen-2.1.3-standalone.jar Applying task droid to (doall) Generating R.java... /Users/zimmd/android-sdk-macosx/build-tools/17.0.0/aapt package --auto-add-overlay -f -m -M /Users/zimmd/Documents/clojure/ldroid/AndroidManifest.xml -S /Users/zimmd/Documents/clojure/ldroid/target/res -S /Users/zimmd/Documents/clojure/ldroid/res -I /Users/zimmd/android-sdk-macosx/platforms/android-17/android.jar -J /Users/zimmd/Documents/clojure/ldroid/gen --generate-dependencies

Running javac with [@/var/folders/zt/yq6mcctn71l7l5j0_61nzbym0000gp/T/.leiningen-cmdline6037906155517761448.tmp] Compiling 1 source files to /Users/zimmd/Documents/clojure/ldroid/target/classes Compiling Clojure files... Project classpath: (/Users/zimmd/android-sdk-macosx/tools/support/annotations.jar /Users/zimmd/android-sdk-macosx/platforms/android-17/android.jar /Users/zimmd/Documents/clojure/ldroid/test /Users/zimmd/Documents/clojure/ldroid/src/clojure /Users/zimmd/Documents/clojure/ldroid/dev-resources /Users/zimmd/Documents/clojure/ldroid/resources /Users/zimmd/Documents/clojure/ldroid/target/classes /Users/zimmd/.m2/repository/android/clojure/1.4.0/clojure-1.4.0.jar /Users/zimmd/.m2/repository/neko/neko/2.0.0-beta1/neko-2.0.0-beta1.jar /Users/zimmd/.m2/repository/android/tools.nrepl/0.2.0-bigstack/tools.nrepl-0.2.0-bigstack.jar) Build type: debug, dynamic compilation: enabled, remote REPL: enabled. Applying task javac to nil Running javac with [@/var/folders/zt/yq6mcctn71l7l5j0_61nzbym0000gp/T/.leiningen-cmdline2709143033790898325.tmp] Compiling clojure.java.browse Compiling neko.ui.listview Compiling clojure.data Compiling clojure.tools.nrepl.middleware.interruptible-eval Compiling clojure.tools.nrepl.ack Compiling clojure.tools.nrepl.server Compiling clojure.tools.nrepl.misc Compiling neko.init.options Compiling neko.listeners.adapter-view Compiling neko.doc Compiling neko.resource Compiling clojure.core.protocols Compiling neko.-utils Compiling clojure.tools.nrepl.helpers Compiling clojure.tools.nrepl.cmdline Compiling clojure.zip Compiling neko.init Compiling neko.listeners.text-view Compiling clojure.java.shell Compiling neko.activity Compiling clojure.test Compiling clojure.test.tap Compiling clojure.test.junit Compiling neko.data Compiling clojure.template Compiling clojure.walk Compiling neko.threading Compiling neko.ui.adapters Compiling clojure.xml Compiling neko.listeners.dialog Compiling clojure.tools.nrepl.bencode Compiling clojure.java.browse-ui Compiling neko.find-view Compiling clojure.string Compiling neko.notify Compiling neko.log Compiling neko.compilation Compiling neko.ui.mapping Compiling neko.data.sqlite Compiling neko.listeners.view Compiling neko.application Compiling clojure.reflect Compiling clojure.set Compiling neko.ui.traits Compiling clojure.instant Compiling neko.debug Compiling ldroid.main Compiling clojure.tools.nrepl Compiling clojure.inspector Compiling neko.dialog.alert Compiling clojure.core Compiling clojure.java.javadoc Compiling clojure.main Compiling clojure.tools.nrepl.middleware.session Compiling clojure.java.io Compiling neko.context Compiling clojure.tools.nrepl.transport Compiling clojure.stacktrace Compiling clojure.pprint Compiling neko.ui Compiling clojure.repl Compiling clojure.tools.nrepl.middleware.pr-values Compiling clojure.uuid Compilation succeeded. Creating DEX.... /Users/zimmd/android-sdk-macosx/build-tools/17.0.0/dx --dex --no-optimize --output /Users/zimmd/Documents/clojure/ldroid/target/classes.dex /Users/zimmd/Documents/clojure/ldroid/target/classes /Users/zimmd/android-sdk-macosx/tools/support/annotations.jar /Users/zimmd/.m2/repository/android/clojure/1.4.0/clojure-1.4.0.jar /Users/zimmd/.m2/repository/neko/neko/2.0.0-beta1/neko-2.0.0-beta1.jar /Users/zimmd/.m2/repository/android/tools.nrepl/0.2.0-bigstack/tools.nrepl-0.2.0-bigstack.jar

Crunching resources... /Users/zimmd/android-sdk-macosx/build-tools/17.0.0/aapt crunch -v -S /Users/zimmd/Documents/clojure/ldroid/res -C /Users/zimmd/Documents/clojure/ldroid/target/res Crunching PNG Files in source dir: /Users/zimmd/Documents/clojure/ldroid/res To destination dir: /Users/zimmd/Documents/clojure/ldroid/target/res Packaging resources... /Users/zimmd/android-sdk-macosx/build-tools/17.0.0/aapt package --no-crunch -f --debug-mode --auto-add-overlay -M /Users/zimmd/Documents/clojure/ldroid/AndroidManifest.xml -S /Users/zimmd/Documents/clojure/ldroid/target/res -S /Users/zimmd/Documents/clojure/ldroid/res -A /Users/zimmd/Documents/clojure/ldroid/assets -I /Users/zimmd/android-sdk-macosx/platforms/android-17/android.jar -F /Users/zimmd/Documents/clojure/ldroid/target/ldroid.ap_ --generate-dependencies

Creating APK... Signing APK... jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore /Users/zimmd/.android/debug.keystore -storepass android -keypass android /Users/zimmd/Documents/clojure/ldroid/target/ldroid-debug-unaligned.apk androiddebugkey

Aligning APK... /Users/zimmd/android-sdk-macosx/tools/zipalign 4 /Users/zimmd/Documents/clojure/ldroid/target/ldroid-debug-unaligned.apk /Users/zimmd/Documents/clojure/ldroid/target/ldroid-debug.apk

/Users/zimmd/android-sdk-macosx/platform-tools/adb devices List of devices attached emulator-5554 device Installing APK... /Users/zimmd/android-sdk-macosx/platform-tools/adb -s emulator-5554 install -r /Users/zimmd/Documents/clojure/ldroid/target/ldroid-debug.apk 1168 KB/s (1951887 bytes in 1.631s) pkg: /data/local/tmp/ldroid-debug.apk Failure [INSTALL_FAILED_INVALID_APK] Launching APK... /Users/zimmd/android-sdk-macosx/platform-tools/adb -s emulator-5554 shell am start -n ldroid/.MainActivity Starting: Intent { cmp=ldroid/.MainActivity } Error type 3 Error: Activity class {ldroid/ldroid.MainActivity} does not exist. Binding device port 9999 to local port 9999 ... /Users/zimmd/android-sdk-macosx/platform-tools/adb -s emulator-5554 forward tcp:9999 tcp:9999

dirkz commented 11 years ago

Some more versions:

java -version java version "1.6.0_51" Java(TM) SE Runtime Environment (build 1.6.0_51-b11-456-11M4508) Java HotSpot(TM) 64-Bit Server VM (build 20.51-b01-456, mixed mode)

I left all lein-droid defaults as-is (android/clojure "1.4.0", neko/neko "2.0.0-beta1")

alexander-yakushev commented 11 years ago

Can you please try repeating this with neko 2.0.0-beta3? Also, which version of lein-droid do you use?

dirkz commented 11 years ago

Quick response :)

Tried again, with the following versions: lein-droid "0.1.0-preview5" neko/neko "2.0.0-beta3"

Still the same error.

Trying with android/clojure "1.5.0" gives me an exception (java.lang.ClassNotFoundException: jsr166y.ForkJoinPool). Re-created the same project with the same values (just in case), still the same error. Could it have something to do with the emulator?

Btw., thanks for your great work on lein-droid! I'm really looking forward to your GSOC updates this year :)

alexander-yakushev commented 11 years ago

I don't think it is about emulator, it has rather something to do with new APK creation method.

I haven't got any complaints from Mac OS users yet, so this is pretty new for me. Have you updated your Android SDK to version 22?

I'm glad you like lein-droid so far (even if it is not working for you:D), I hope we'll resolve the issue soon.

dirkz commented 11 years ago

logcat reveals a lot more information than is shown with 'adb install':

E/PackageParser( 732): parsePackageLite error: specifies bad package name "ldroid": must have at least one '.' separator W/DefContainer( 732): Failed to parse package

So the package name must contain at least one dot, and everything works fine now :)

alexander-yakushev commented 11 years ago

Oh dear, I haven't noticed this one. But I'm glad it is OK now!

mirudhubashini commented 5 years ago

kindly resolve my issue, i couldn't install apk on my real android device

[debug] [35m[ADB] [39m App is not installed [debug] [35m[ADB] [39m App 'D:/Android/Builds/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk' not installed. Installing [debug] [35m[ADB] [39m Running 'C:\Users\Admin\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s 33000da7d9484273 install D\:/Android/Builds/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk' [debug] [35m[ADB] [39m Install command stdout: [100%] /data/local/tmp/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk

[debug] [35m[ADB] [39m D:/Android/Builds/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk: 1 file pushed. 0.0 MB/s (91 bytes in 0.047s)

[debug] [35m[ADB] [39m pkg: /data/local/tmp/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk

[debug] [35m[ADB] [39m Failure [INSTALL_FAILED_INVALID_APK] [debug] [35m[AndroidDriver] [39m Shutting down Android driver [debug] [35m[AndroidDriver] [39m Called deleteSession but bootstrap wasn't active [debug] [35m[Logcat] [39m Stopping logcat capture [debug] [35m[ADB] [39m Running 'C:\Users\Admin\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s 33000da7d9484273 shell am force-stop io.appium.unlock' [debug] [35m[AndroidDriver] [39m Not cleaning generated files. Add clearSystemFiles capability if wanted. [debug] [35m[BaseDriver] [39m Event 'newSessionStarted' logged at 1558100870475 (19:17:50 GMT+0530 (India Standard Time)) [35m[W3C] [39m Encountered internal error running command: Error: [100%] /data/local/tmp/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk

[35m[W3C] [39m D:/Android/Builds/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk: 1 file pushed. 0.0 MB/s (91 bytes in 0.047s)

[35m[W3C] [39m pkg: /data/local/tmp/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk

[35m[W3C] [39m Failure [INSTALL_FAILED_INVALID_APK] [35m[W3C] [39m at ADB.executeInstall$ (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\appium-adb\lib\tools\apk-utils.js:398:13) [35m[W3C] [39m at tryCatch (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:67:40) [35m[W3C] [39m at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:315:22) [35m[W3C] [39m at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:100:21) [35m[W3C] [39m at GeneratorFunctionPrototype.invoke (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:136:37) [35m[W3C] [39m at [35m[HTTP] [39m [37m<-- POST /wd/hub/session [39m [31m500 [39m [90m16232 ms - 1868 [39m [35m[HTTP] [39m [90m [39m org.openqa.selenium.WebDriverException: It is impossible to create a new session because 'createSession' which takes HttpClient, InputStream and long was not found or it is not accessible Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z' System info: host: 'CHNSHL379014D', ip: '192.168.1.32', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '10.0.1' Driver info: driver.version: AndroidDriver at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:182) at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:196) at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:218) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543) at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42) at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1) at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:207) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:130) at io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:38) at io.appium.java_client.AppiumDriver.(AppiumDriver.java:84) at io.appium.java_client.AppiumDriver.(AppiumDriver.java:94) at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:88) at com.infosys.driver.AppiumConnection.getConnection(AppiumConnection.java:62) at com.infosys.driver.DriverWrapper.(DriverWrapper.java:30) at com.infosys.testsuites.EmailTestSuite.xcma_elv_07(EmailTestSuite.java:91) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at com.infosys.execution.Executor.emailTestSuite(Executor.java:208) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124) at org.testng.internal.Invoker.invokeMethod(Invoker.java:571) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:707) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:979) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) at org.testng.TestRunner.privateRun(TestRunner.java:648) at org.testng.TestRunner.run(TestRunner.java:505) at org.testng.SuiteRunner.runTest(SuiteRunner.java:455) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415) at org.testng.SuiteRunner.run(SuiteRunner.java:364) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1187) at org.testng.TestNG.runSuitesLocally(TestNG.java:1116) at org.testng.TestNG.runSuites(TestNG.java:1028) at org.testng.TestNG.run(TestNG.java:996) at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77) Caused by: java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:172) ... 45 more Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: [100%] /data/local/tmp/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk D:/Android/Builds/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk: 1 file pushed. 0.0 MB/s (91 bytes in 0.047s) pkg: /data/local/tmp/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk

Failure [INSTALL_FAILED_INVALID_APK] Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z' System info: host: 'CHNSHL379014D', ip: '192.168.1.32', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '10.0.1' Driver info: driver.version: AndroidDriver remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: [100%] /data/local/tmp/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk D:/Android/Builds/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk: 1 file pushed. 0.0 MB/s (91 bytes in 0.047s) pkg: /data/local/tmp/XCMA_7.4.0_PD_QA1_19Apr19_jendebug.apk

Failure [INSTALL_FAILED_INVALID_APK] at getResponseForW3CError (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\errors.js:806:13) at asyncHandler$ (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:361:37) at tryCatch (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:67:40) at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:315:22) at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:100:21) at GeneratorFunctionPrototype.invoke (C:\Program Files (x86)\Appium\resources\app\node_modules\appium\node_modules\babel-runtime\regenerator\runtime.js:136:37) at 2019-05-17 19:17:50,592 ERROR [main] It is impossible to create a new session because 'createSession' which takes HttpClient, InputStream and long was not found or it is not accessible Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z' System info: host: 'CHNSHL379014D', ip: '192.168.1.32', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '10.0.1' Driver info: driver.version: AndroidDriver - False

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57)
at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104)
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:543)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
... 50 more