birkir / react-native-carplay

CarPlay with React Native
https://birkir.dev/react-native-carplay/
MIT License
625 stars 103 forks source link

IllegalArgumentException: Missing required action types: APP_ICON for Android Auto #170

Open trandung1601 opened 4 months ago

trandung1601 commented 4 months ago

Describe the bug I'm in the process of creating an application for Android Auto using react-native-carplay. Unfortunately, the documentation lacks details on configuring the TabBarTemplate. To work around this, I delved into the library's code to understand its functionality. Based on my findings, I've established the following configuration:

  `import {GridTemplate, TabBarTemplate} from 'react-native-carplay';
  import {img_1, img_2} from './templates/file';
  const gridItemImage = require('../assets/img/go.png');

  const gridTemp = new GridTemplate({
    buttons: [
      {
        id: 'Odo',
        titleVariants: ['Odo'],
        image: gridItemImage,
      },
    ],
    title: 'TSC',
    id: 't1',
  });
  const gridTemp2 = new GridTemplate({
    buttons: [
      {
        id: 'Odo2',
        titleVariants: ['Odo122'],
        image: gridItemImage,
      },
    ],
    id: 't2',
    title: 'TSC',
  });

  export const tabBarTemplate = new TabBarTemplate({
    title: 'TSC',
    headerAction: {type: 'back', appIcon: ''},
    templates: [
      {
        title: 'tab1',
        id: 't1',
        icon: {uri: img_1},
        template: gridTemp,
      },
      {
        title: 'tab2',
        id: 't2',
        icon: {uri: img_2},
        template: gridTemp2,
      },
    ],
  });

`

However, When I run the app, it throws this error: java.lang.IllegalArgumentException: Missing required action types: APP_ICON, at androidx.car.app.model.constraints.ActionsConstraints.validateOrThrow(ActionsConstraints.java:394) at androidx.car.app.model.TabTemplate$Builder.setHeaderAction(TabTemplate.java:235) at org.birkir.carplay.parser.RCTTabTemplate.parse(RCTTabTemplate.kt:32) at org.birkir.carplay.parser.RCTTabTemplate.parse(RCTTabTemplate.kt:11) at org.birkir.carplay.parser.TemplateParser.parse(TemplateParser.kt:30) at org.birkir.carplay.CarPlayModule.parseTemplate(CarPlayModule.kt:92) at org.birkir.carplay.CarPlayModule.createScreen(CarPlayModule.kt:284) at org.birkir.carplay.CarPlayModule.getScreen(CarPlayModule.kt:294) at org.birkir.carplay.CarPlayModule.setRootTemplate$lambda$2(CarPlayModule.kt:139) at org.birkir.carplay.CarPlayModule.$r8$lambda$cp18Ybhsx4k_Ka2Moa-_hKNT4FY(Unknown Source:0) at org.birkir.carplay.CarPlayModule$$ExternalSyntheticLambda5.run(Unknown Source:4) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:236) at android.app.ActivityThread.main(ActivityThread.java:8061) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967) Can anyone with experience with Android Auto help me? Thank you, buddy, so much!!!