Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Runtime Issue on Raspberry PI #3

Open
brtietz opened this issue Feb 5, 2018 · 2 comments
Open

Runtime Issue on Raspberry PI #3

brtietz opened this issue Feb 5, 2018 · 2 comments

Comments

@brtietz
Copy link

brtietz commented Feb 5, 2018

I've tried to test the Native PIO speaker example on a Raspberry PI and got the following runtime error:

java.lang.IllegalArgumentException: Unable to find native library speaker using classloader: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/com.google.android.things.jar", zip file "/oem/app/speaker-debug.apk"],nativeLibraryDirectories=[/oem/lib/speaker-debug, /system/lib, /vendor/lib, /system/lib, /vendor/lib]]]

This is similar to errors we've seen compiling other armeabi-v7a libraries for the PI. Has anyone had success using those libraries on the PI, or is there an arm64-v8a version of the native libraries available?

@proppy
Copy link
Contributor

proppy commented Feb 16, 2018

Can you provide the full build log and dump the content of the apk?

@brtietz
Copy link
Author

brtietz commented Feb 16, 2018

Build logs were generated with gradle assembleDebug -d > build_logs

build_logs.log

Here is the dump of the apk:

aapt list -a speaker-debug.apk
AndroidManifest.xml
META-INF/CERT.RSA
META-INF/CERT.SF
META-INF/MANIFEST.MF
classes.dex
lib/armeabi-v7a/libspeaker.so
lib/x86/libspeaker.so
resources.arsc

Resource table:
Package Groups (1)
Package Group 0 id=0x7f packageCount=1 name=com.example.androidthings.nativepio
  Package 0 id=0x7f name=com.example.androidthings.nativepio
    type 0 configCount=1 entryCount=1
      spec resource 0x7f010000 com.example.androidthings.nativepio:string/app_name: flags=0x00000000
      config (default):
        resource 0x7f010000 com.example.androidthings.nativepio:string/app_name: t=0x03 d=0x00000000 (s=0x0008 r=0x00)

Android manifest:
N: android=http://schemas.android.com/apk/res/android
  E: manifest (line=17)
    A: android:versionCode(0x0101021b)=(type 0x10)0x1
    A: android:versionName(0x0101021c)="1.0" (Raw: "1.0")
    A: package="com.example.androidthings.nativepio" (Raw: "com.example.androidthings.nativepio")
    E: uses-sdk (line=22)
      A: android:minSdkVersion(0x0101020c)=(type 0x10)0x1a
      A: android:targetSdkVersion(0x01010270)=(type 0x10)0x19
    E: application (line=26)
      A: android:label(0x01010001)=@0x7f010000
      A: android:icon(0x01010002)=@0x1080093
      A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
      A: android:allowBackup(0x01010280)=(type 0x12)0xffffffff
      A: android:extractNativeLibs(0x010104ea)=(type 0x12)0x0
      E: uses-library (line=32)
        A: android:name(0x01010003)="com.google.android.things" (Raw: "com.google.android.things")
      E: activity (line=34)
        A: android:name(0x01010003)="android.app.NativeActivity" (Raw: "android.app.NativeActivity")
        E: meta-data (line=35)
          A: android:name(0x01010003)="android.app.lib_name" (Raw: "android.app.lib_name")
          A: android:value(0x01010024)="speaker" (Raw: "speaker")
        E: intent-filter (line=39)
          E: action (line=40)
            A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
          E: category (line=42)
            A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw: "android.intent.category.LAUNCHER")
        E: intent-filter (line=46)
          E: action (line=47)
            A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
          E: category (line=49)
            A: android:name(0x01010003)="android.intent.category.IOT_LAUNCHER" (Raw: "android.intent.category.IOT_LAUNCHER")
          E: category (line=50)
            A: android:name(0x01010003)="android.intent.category.DEFAULT" (Raw: "android.intent.category.DEFAULT")

A few other notes. We've been working with the Google Group on this: https://plus.google.com/105079131213722093844/posts/bmf3aBDpgBd?cfem=1
https://issuetracker.google.com/issues/73122473

We had to add android:extractNativeLibs="false" to the manifest. After that it worked if we loaded directly from Android Studio. However, we have not yet been able to build from command line gradle and load via an OTA update, as a test of a production-like process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants