cancel
Showing results for 
Search instead for 
Did you mean: 

iOS Generation fails using GWPA for iOS/Eclipse

Former Member
0 Kudos

Hi All,

generating an app based on an ODATA service for Android works, doing the same for iOS I get the following exception (for Eclipse 4.2. and 4.3 based on Java7/OSX 10.9):

!ENTRY com.sap.odata.dt.framework 4 0 2013-12-10 16:08:40.099

!MESSAGE Template Generation Wizard error, see error log for details.

!STACK 0

java.lang.NullPointerException

at com.sap.odata.dt.framework.utils.FileUtils.copyDirFromBundle(FileUtils.java:390)

at com.sap.iw.gw.oc.eclipse.ios.generator.ProxyGenerator.copySDMLibraryFolder(ProxyGenerator.java:235)

at com.sap.iw.gw.oc.eclipse.ios.generator.ProxyGenerator.generateProxy(ProxyGenerator.java:110)

at com.sap.iw.gw.oc.eclipse.ios.generator.IOSBaseAppGenerator.generateProxy(IOSBaseAppGenerator.java:186)

at com.sap.iw.gw.oc.eclipse.ios.generator.ListDetailsAppGenerator.generateApp(ListDetailsAppGenerator.java:84)

at com.sap.iw.gw.oc.eclipse.template.ios.list.IOSListTemplate.onFinish(IOSListTemplate.java:88)

at com.sap.iw.gw.oc.eclipse.framework.wizard.TemplateGenerationWizard$1.run(TemplateGenerationWizard.java:109)

at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:180)

at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)

at org.eclipse.swt.widgets.Display.syncExec(Display.java:4650)

at com.sap.iw.gw.oc.eclipse.framework.wizard.TemplateGenerationWizard.doFinish(TemplateGenerationWizard.java:103)

at com.sap.iw.gw.oc.eclipse.framework.wizard.TemplateGenerationWizard.access$2(TemplateGenerationWizard.java:101)

at com.sap.iw.gw.oc.eclipse.framework.wizard.TemplateGenerationWizard$2.run(TemplateGenerationWizard.java:171)

at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)

at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)

at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:1028)

at com.sap.iw.gw.oc.eclipse.framework.wizard.TemplateGenerationWizard.performFinish(TemplateGenerationWizard.java:167)

at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:827)

at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:432)

at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:628)

at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)

at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4166)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1466)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1489)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1474)

at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1279)

at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4012)

at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3651)

at org.eclipse.jface.window.Window.runEventLoop(Window.java:826)

at org.eclipse.jface.window.Window.open(Window.java:802)

at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:259)

at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:279)

at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:290)

at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)

at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:243)

at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:224)

at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)

at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:167)

at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)

at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)

at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)

at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:420)

at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:157)

at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)

at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)

at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)

at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4166)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1466)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1489)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1474)

at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1279)

at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4012)

at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3651)

at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)

at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)

at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)

at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)

at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)

at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)

at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)

at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)

at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)

at org.eclipse.equinox.launcher.Main.run(Main.java:1450)

Cheers

Olli

Accepted Solutions (1)

Accepted Solutions (1)

bradp
Active Participant
0 Kudos

Hi Olli,

I had the same issue and asked the same question, see here:

To summarise, there is a bug which should be fixed in the next few days, alternatively there are some workarounds.

See the thread for how to change the SDK from included SDK to your own SDK. This will only help if you have access to the SMP3.0 SDK's. Which is what I did and it worked.

Alternatively you can follow this note:

http://service.sap.com/sap/support/notes/1830710

Cheers,

Brad

Answers (1)

Answers (1)

Former Member
0 Kudos

Brad,

Thanks for the equick response.

Any tip on how to get access to SMP3 libs as the patch hasn't released yet?

Cheers

Olli

bradp
Active Participant
0 Kudos

Hi Olli,

I have them as I am participating in the ramp-up. However that OSS note I mention gives instructions how to fix it.

Ill paste the instructions below:

Known Issue

Toolkit for iOS
Currently, when you use the Toolkit for iOS, it fails to generate the iOS application.

The following workaround solves the iOS application generation issue. A fix will be available in the next patch release:

    1. In the file system, open the folder, Eclipse --> plugins and find the JAR file, com.sap.odata.dt.cons.toolkit.ios
    2. Extract the content of the JAR file into a folder in your file system.
    3. Find and copy the folder, res/SDMLibs/iOS, in the extracted content.
    4. Create a new folder called, Temp/IOSODataSDK (case sensitive), and place the copied iOS folder into it.
      You should have the SDM libs in the following folder structure: /Temp/IOSODataSDK/iOS/…
    5. Open Eclipse and go to Eclipse --> Preferences, and choose OData Development -> SAP NetWeaver Gateway -> iOS Toolkit.
    6. Select Use Local SDK, and click Browse to select the folder, Temp/IOSODataSDK. The selected
    7. path displays in Location.
    8. Click OK.

Hope that helps.

Cheers,

Brad

Former Member
0 Kudos

Ah, very cool! Thanks!

Former Member
0 Kudos

I tried to use this patch, found the following jar com.sap.odata.dt.cons.toolkit.ios_1.1.0.jar but no folder res/SDMLibs/iOS within, just the folder res/SDMLibs but no iOS sub.

Cheers

Olli

Former Member
0 Kudos

I tried to use this patch, found the following jar com.sap.odata.dt.cons.toolkit.ios_1.1.0.jar but no folder res/SDMLibs/iOS within, just the folder res/SDMLibs but no iOS sub.

Cheers

Olli

Former Member
0 Kudos

Do you know, why I can't attached images in my replies? The button is inactive? 🙂

Otherwise I would have sent you an shot of the contents structure...

Cheers

Olli

bradp
Active Participant
0 Kudos

Hi Olli,

I have zipped the folder you are looking for, you can download it by clicking here.

Then extract it to a folder and reference that folder in the iOS Toolkit settings. see screenshot below:

Hope that works for you.

Cheers,

Brad

Former Member
0 Kudos

Wow, great service, thanks!

Cheers

Olli

Former Member
0 Kudos