What devices will this work with?

Can the apps be installed on older devices like Nook, or Amazon Fire tablets directly with USB transfer? Or do they have to go through the Google play store?

Hi @ddownn I’m using processing, and from processing IDE or Android studio, I’m loading the apps in my tablet without any issue, just using the USB.

This part made me think that maybe you want to know how to extract an installed Processing app to use it on an other device. You can extract an on your device existing app with the app APK Extractor available on Google Play

I have never tried it before , I just wondered if it would work with a nook which is kind of old. I guess I’ll give it a try. Thanks

Well, I tried running a sketch on the nook, and the IDE is saying “Installing sketch on 3024…”, but the nook isn’t doing anything other than creating a “notification” that USB debugging is connected.

this is what the IDE console says, and the last part just kind of keeps mostly repeating maybe every 30 seconds.

Any advice on whether this looks normal or why nothing is happening on the Nook?

Build folder: /var/folders/mk/s4f0p52s7d701vn15fxzrj6c0000gn/T/android8393296510015745949sketch
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild
> Task :app:compileDebugAidl
> Task :app:compileDebugRenderscript
> Task :app:checkDebugManifest
> Task :app:generateDebugBuildConfig
> Task :app:prepareLintJar
> Task :app:generateDebugResValues
> Task :app:generateDebugResources
> Task :app:mergeDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:processDebugManifest
> Task :app:splitsDiscoveryTaskDebug
> Task :app:processDebugResources
> Task :app:generateDebugSources
> Task :app:javaPreCompileDebug
> Task :app:compileDebugJavaWithJavac
> Task :app:compileDebugNdk NO-SOURCE
> Task :app:compileDebugSources
> Task :app:mergeDebugShaders
> Task :app:compileDebugShaders
> Task :app:generateDebugAssets
> Task :app:mergeDebugAssets
> Task :app:extractTryWithResourcesSupportJarDebug
> Task :app:transformClassesWithStackFramesFixerForDebug
> Task :app:transformClassesWithDesugarForDebug
> Task :app:transformClassesWithDexBuilderForDebug
> Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug
> Task :app:transformDexArchiveWithDexMergerForDebug
> Task :app:mergeDebugJniLibFolders
> Task :app:transformNativeLibsWithMergeJniLibsForDebug
> Task :app:processDebugJavaRes NO-SOURCE
> Task :app:transformResourcesWithMergeJavaResForDebug
> Task :app:validateSigningDebug
> Task :app:packageDebug
> Task :app:assembleDebug

BUILD SUCCESSFUL in 12s
28 actionable tasks: 28 executed
D/skia    (30380): SkGraphics::Init() - BLTsville (CPU) dlopen success
D/AndroidRuntime(30380): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
D/AndroidRuntime(30380): CheckJNI is OFF
D/AndroidRuntime(30380): Calling main entry com.android.commands.am.Am
I/main    (  441): RDGEActivity - RDGEActivity.onPause()
I/main    (  441): RDGEApp - RDGEApp.onPause()
I/main    (  441): RDGEApp - RDGEApp: pausing INGLView com.bn.nook.rdgenook.view.ActiveShelfSceneView@41b92ec0
I/main    (  441): RDGEApp - RDGEApp: finished pausing INGLView com.bn.nook.rdgenook.view.ActiveShelfSceneView@41b92ec0
I/main    (  441): RDGEActivity - RDGE pause time: 1ms
D/AndroidRuntime(30380): Shutting down VM
I/main    (  441): RDGEActivity - RDGEActivity.onResume()
I/main    (  441): RDGEApp - RDGEApp.onResume()
I/main    (  441): RDGEApp - RDGEApp: resuming INGLView com.bn.nook.rdgenook.view.ActiveShelfSceneView@41b92ec0
I/ActivityManager(  201): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.nook.home2/.MainActivity} from pid 30380
I/RDGE    (  441): ActiveShelf current item index changing to 19.00
I/main    (  441): RDGEApp - RDGEApp: finished resuming INGLView com.bn.nook.rdgenook.view.ActiveShelfSceneView@41b92ec0
E/RDGE    (  441): OVERFLOW ERROR: Can't convert uint64 value 18446744070077660279 to type 'int32'
D/dalvikvm(30380): GC_CONCURRENT freed 101K, 81% free 498K/2560K, paused 0ms+0ms
E/RDGE    (  441): ADAPTER CALLBACK ActiveShelfSceneRunState::onSetChanged()
E/RDGE    (  441): JNIBitmapAdapter::getCount() --> 20
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 19 )
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 18 )
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 17 )
I/RDGE    (  441): ActiveShelf current item index changing to 19.00
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 19, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 16 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=280004; tex=0x55360630; name='ActiveShelfSceneRunState:19'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 18, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 15 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=420006; tex=0x553607a0; name='ActiveShelfSceneRunState:18'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 17, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 14 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=490007; tex=0x55360820; name='ActiveShelfSceneRunState:17'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 16, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 13 )
D/dalvikvm(  441): GC_CONCURRENT freed 2158K, 40% free 28222K/46599K, paused 2ms+4ms
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=560008; tex=0x553608a0; name='ActiveShelfSceneRunState:16'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 15, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 12 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=630009; tex=0x55360b00; name='ActiveShelfSceneRunState:15'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 14, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 11 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=700010; tex=0x55360b80; name='ActiveShelfSceneRunState:14'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 13, 0x57d44b24 ) - 267 x 522 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 10 )
D/RDGE    (  441): glTexSubImage2D( 267x522 ) - tname=770011; tex=0x55360c00; name='ActiveShelfSceneRunState:13'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 12, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 9 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=840012; tex=0x55360c80; name='ActiveShelfSceneRunState:12'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 11, 0x57d44b24 ) - 272 x 522 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 8 )
D/RDGE    (  441): glTexSubImage2D( 272x522 ) - tname=910013; tex=0x55360d00; name='ActiveShelfSceneRunState:11'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 10, 0x57d44b24 ) - 272 x 522 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 7 )
D/dalvikvm(  441): GC_CONCURRENT freed 1835K, 40% free 28366K/46599K, paused 1ms+4ms
D/skia    (30380): SkGraphics::Term() dlclose() BLTsville (CPU) 
D/RDGE    (  441): glTexSubImage2D( 272x522 ) - tname=980014; tex=0x55360d80; name='ActiveShelfSceneRunState:10'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 9, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 6 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=1050015; tex=0x55360e00; name='ActiveShelfSceneRunState:9'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 8, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 5 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=1120016; tex=0x55360e80; name='ActiveShelfSceneRunState:8'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 7, 0x57d44b24 ) - 228 x 361 (opaque='false')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 4 )
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=1190017; tex=0x55360f00; name='ActiveShelfSceneRunState:7'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 6, 0x57d44b24 ) - 237 x 522 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 3 )
D/RDGE    (  441): glTexSubImage2D( 237x522 ) - tname=1260018; tex=0x55360f80; name='ActiveShelfSceneRunState:6'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 5, 0x57d44b24 ) - 238 x 522 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 2 )
D/dalvikvm(  441): GC_CONCURRENT freed 2091K, 40% free 28226K/46599K, paused 5ms+3ms
D/RDGE    (  441): glTexSubImage2D( 238x522 ) - tname=1330019; tex=0x55361000; name='ActiveShelfSceneRunState:5'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 4, 0x57d44b24 ) - 288 x 471 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 1 )
D/RDGE    (  441): glTexSubImage2D( 288x471 ) - tname=1400020; tex=0x55361080; name='ActiveShelfSceneRunState:4'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 3, 0x57d44b24 ) - 288 x 471 (opaque='true')
I/RDGE    (  441): ActiveShelfSceneRunState::reloadTexture( 0 )
D/RDGE    (  441): glTexSubImage2D( 288x471 ) - tname=1470021; tex=0x55361100; name='ActiveShelfSceneRunState:3'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 2, 0x57d44b24 ) - 228 x 361 (opaque='false')
D/dalvikvm(  441): GC_CONCURRENT freed 1826K, 39% free 28430K/46599K, paused 3ms+3ms
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=210003; tex=0x552eaa10; name='ActiveShelfSceneRunState:2'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 1, 0x57d44b24 ) - 228 x 361 (opaque='false')
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=140002; tex=0x55360580; name='ActiveShelfSceneRunState:1'
I/RDGE    (  441): ActiveShelfSceneRunState::onImageLoaded( 0, 0x57d44b24 ) - 228 x 361 (opaque='false')
D/RDGE    (  441): glTexSubImage2D( 228x361 ) - tname=70001; tex=0x55360410; name='ActiveShelfSceneRunState:0'
D/skia    (30394): SkGraphics::Init() - BLTsville (CPU) dlopen success
D/AndroidRuntime(30394): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
D/AndroidRuntime(30394): CheckJNI is OFF
D/BatteryService(  201): PROCESSVALUES : update plugged:false was:false stat:3 zone:16 was:16 send low:false
D/AndroidRuntime(30394): Calling main entry com.android.commands.pm.Pm
W/ActivityManager(  201): No content provider found for permission revoke: file:///data/local/tmp/sketch_191031c_debug.apk
W/ActivityManager(  201): No content provider found for permission revoke: file:///data/local/tmp/sketch_191031c_debug.apk
W/PackageParser(  201): /data/app/vmdl63039073.tmp (at Binary XML file line #7): Requires newer sdk version #17 (current version is #15)
V/NV      (29809): RUNNING
V/NV      (29809): RESOLVED__SUCCESS__REACHED_INTERNET
D/DeviceManagerBroadcastReceiver(  354): action (com.nook.intent.action.NOOK_WIFI_ENABLE_RESPONSE)
D/NookWifiListener(  354): Connected
D/NookWifiListener(  551): Connected
D/NookWifiListener(  551): Connected
I/DeviceManagerHandler(  354): HandleMessage():  msg.what (303)
D/DeviceManagerService(  354): Status = SUCCESS__CONNECTED
I/NookNetworkNotification(  284): status is NookCmConstants 2
D/dalvikvm(29809): GC_CONCURRENT freed 385K, 7% free 9206K/9799K, paused 4ms+3ms
D/BatteryService(  201): PROCESSVALUES : update plugged:false was:false stat:3 zone:16 was:16 send low:false

What kind of Android is installed? Froyo?
I mean what sdk level are you targeting?
The default minimum is Android 4.2 (API level 17). Also maybe you have to downgrade. The first build of Android mode was 0217 in 2013. You can download the sours code here

I’ve followed this post’s suggestions about changing the target level to 15 in a very simple test sketch, and got the same results I described before. I think it’s just not worth messing with the old Nook.
I’m not sure I want to jump straight into putting anything on Google Play, I was just hoping I could run some sketches on a tablet, maybe I’ll get an Amazon Fire tablet.
One last question on the subject, does going through the process of using a USB connection to run a sketch on an android device actually install it there so it can run untethered, or does it only run while there is a USB connection?

When the PC installs the APK it will run as a stand alone aplication. In the near future there will be a fast preview method, like the Processing app APDE has, that runs the sketch in seconds without actual installing. Because you mencioned a trade mark, I am using a cheap tablet, Samsung tab E 9 for 2 years now, and is my best buy ever. It’s as new, and the battery goes over 8 hours full light in continuous use. I use it 16 hours a day, and forgot about PC. Every thing is on my tablet because you can’t imagen an app that not exist on the store for every specific purpose.

thanks for the advice