Praca na Windowsie z Phonegap 3.0, platformą Android, debugowanie w środowisku Eclipse.Phonegap - Aktualizacja do 3.0 problemów z funkcjami API
Udało mi się skompilować moją starą aplikację, ale napotkałem nowy problem, gdy próbuję użyć funkcji, która jest teraz wtyczką.
Dodałem wszystkie potrzebne wtyczki za pomocą narzędzia CLI i dodałem dane "funkcji" do pliku config.xml, więc zakładam, że można je wywoływać. Uprawnienia są również ustawione w pliku manifestu.
FileTransfer
widzę, że przykład API File Transfer kod nie został zmieniony na 3,0, więc wyszedłem z połączenia tak samo w moim kodu. Więc plik pobierze ale wtedy pojawia się błąd, który sprawia, że moja aplikacja krach
"
D/CordovaLog(12883): file:///android_asset/www/phonegap.js: Line 932 : Uncaught Error: Error calling method on NPObject!
"
Zrobiłem kilka szukając tego błędu i nie wydaje się być standardowe rozwiązanie?
Być może istnieje nowy sposób wywoływania funkcji zawartych w wtyczkach? Ponieważ nie mogę odtwarzać pliku audio, nie otrzymując również błędów. Plik dźwiękowy zostanie odtworzony, ale spowoduje błędy.
"
09-01 20:13:17.274: W/PluginManager(13279): THREAD WARNING: exec() call to Media.startPlayingAudio blocked the main thread for 23ms. Plugin should use CordovaInterface.getThreadPool().
"
Ponownie odczytałem interfejs API mediów i nie ma wzmianki o puli wątków. Robię wszystkie moje programy w javascript.
Zasadniczo w każdym miejscu, w którym używam wtyczki, w aplikacji występują poważne błędy. Próbowałem za pomocą mojego funkcji Nagrywanie dźwięku w moim app wcześniej pracy, a kiedy wezwać kres mojego nagrania to zgłasza błąd
"
09-01 20:10:04.206: E/AudioPlayer(13279): FAILED renaming /mnt/sdcard/tmprecording.3gp to /sdsub/myapp/Recorded/myRecording.amr
"
testowałem api transferu plików ponownie przez mojego pliku usunąć funkcję i to również nie
"
09-01 20:16:00.884: W/PluginManager(13279): THREAD WARNING: exec() call to File.remove blocked the main thread for 19ms. Plugin should use CordovaInterface.getThreadPool().
"
Wygląda na to, że istotność zmian funkcjonalności funkcji została zmieniona, ale nigdzie jej nie udokumentowano. Wywołania API wydają się niezmienione w stosunku do starszych wersji, sposób instalowania funkcji API jest inny, ale postępowałem zgodnie z tym przewodnikiem i je instalowałem.
Czy istnieje nowy przewodnik API, który przegapiłem? ponieważ dokumentacja API Phonegap nie uległa zmianie w związku z tym, jak te funkcje są wywoływane w wersji 3.0.
Dzięki.
mój plik konfiguracyjny
<feature name="App">
<param name="android-package" value="org.apache.cordova.App" />
</feature>
<feature name="NetworkStatus">
<param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" />
</feature>
<feature name="File">
<param name="android-package" value="org.apache.cordova.file.FileUtils" />
</feature>
<feature name="FileTransfer">
<param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" />
</feature>
<feature name="Media">
<param name="android-package" value="org.apache.cordova.media.AudioHandler" />
</feature>
<feature name="Notification">
<param name="android-package" value="org.apache.cordova.dialogs.Notification" />
</feature>
<feature name="SplashScreen">
<param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
</feature>
<feature name="Compass">
<param name="android-package" value="org.apache.cordova.deviceorientation.CompassListener" />
</feature>
mój Manifest plik
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
Czy byłeś w stanie to naprawić? Czy możesz potwierdzić, że folder z plikiem cordova.js zawiera również plik cordova_plugins.js i folder wtyczek (które będą miały więcej podkatalogów dla każdej użytej wtyczki). Otwórz także cordova_plugins.Plik js i sprawdź, czy wspomina o wszystkich wtyczkach, które są również wymienione w pliku config.xml. –
Nie mogłem tego naprawić. Nie wiem, dlaczego moja aplikacja działa bez błędów w wersji 3.0, ale ma wszystkie te błędy w wersji 3.0. Plik cordova_plugins.js znajduje się obok pliku cordova.js, a folder wtyczek zawiera wszystkie podkatalogi wtyczek, które dodałem. Jakieś sugestie, w jaki sposób mogę naprawić te błędy? – user1017063
Witam, krok 1 upewnij się, że Twój cordova.js działa i działa poprawnie, krok 2. Musisz wypróbować wtyczkę w rodzimym terminalu, nie emulatorze, nie przeglądarce, krok 3 w Cordova 3.3 nie dodałem żadnych funkcji do konfiguracji , cordova zrobić dla siebie w budowie. krok 4. IOS ma problem z wtyczkami, musisz najpierw usunąć platformę i zainstalować wtyczki, po ponownym dodaniu platformy ios. Mam nadzieję, że to może ci pomóc. – JSG33kC0d3