android dostat obrázek z galerie do imageview
<p>snažím se přidat fotku z galerie do <code>imageview</code>, ale tato chyba se zobrazuje:</p><blockquote> <p>java.lang.runtimeexception: neúspěšný výsledek resultinfo {who = null, request = 1, výsledek = -1, data = intent { dat = content: // media/external/images/media/1}} k aktivitě {hotmetter.pack/hotmetter.pack.getphoto}: java.lang.nullpointerexception</p> </blockquote><p>toto je můj kód:</p><pre class="lang-java prettyprint-override"><code> intent intent = new intent(); intent.settype("image/*"); intent.setaction(intent.action\_get\_content); startactivityforresult(intent.createchooser(intent,"select picture"), select\_picture); } bitmap bitmap=null; public void onactivityresult(int requestcode, int resultcode, intent data) { if (resultcode == activity.result\_ok) { if (requestcode == select\_picture) { uri selectedimageuri = data.getdata(); selectedimagepath = getpath(selectedimageuri); tv.settext(selectedimagepath); img.setimageuri(selectedimageuri); } } public string getpath(uri uri) { string[] projection = { mediastore.images.media.data }; cursor cursor = managedquery(uri, projection, null, null, null); if (cursor == null) return null; int column\_index = cursor.getcolumnindexorthrow(mediastore.images.media.data); cursor.movetofirst(); string s=cursor.getstring(column\_index); cursor.close(); return s; } </code></pre><p>dostanu <code>selectedimagepath="mnt/sdcard/dcim/myimage"</code> ale na <code>img.setimageuri(selectedimageuri);</code> dostanu chybu.</p><p>také jsem použil <code>bitmap</code> a pokusil jsem se nastavit obrázek z <code>setimagebitmap</code>, ale dostanu stejnou chybu.</p><p>logcat:</p><pre><code>05-06 19:41:34.191: e/androidruntime(8466): java.lang.runtimeexception: failure delivering result resultinfo{who=null, request=1, result=-1, data=intent { dat=content://media/external/images/media/1 }} to activity {hotmetter.pack/hotmetter.pack.getphoto}: java.lang.nullpointerexception 05-06 19:41:34.191: e/androidruntime(8466): at android.app.activitythread.deliverresults(activitythread.java:2532) 05-06 19:41:34.191: e/androidruntime(8466): at android.app.activitythread.handlesendresult(activitythread.java:2574) 05-06 19:41:34.191: e/androidruntime(8466): at android.app.activitythread.access$2000(activitythread.java:117) 05-06 19:41:34.191: e/androidruntime(8466): at android.app.activitythread$h.handlemessage(activitythread.java:961) 05-06 19:41:34.191: e/androidruntime(8466): at android.os.handler.dispatchmessage(handler.java:99) 05-06 19:41:34.191: e/androidruntime(8466): at android.os.looper.loop(looper.java:123) 05-06 19:41:34.191: e/androidruntime(8466): at android.app.activitythread.main(activitythread.java:3683) 05-06 19:41:34.191: e/androidruntime(8466): at java.lang.reflect.method.invokenative(native method) 05-06 19:41:34.191: e/androidruntime(8466): at java.lang.reflect.method.invoke(method.java:507) 05-06 19:41:34.191: e/androidruntime(8466): at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:839) 05-06 19:41:34.191: e/androidruntime(8466): at com.android.internal.os.zygoteinit.main(zygoteinit.java:597) 05-06 19:41:34.191: e/androidruntime(8466): at dalvik.system.nativestart.main(native method) 05-06 19:41:34.191: e/androidruntime(8466): caused by: java.lang.nullpointerexception 05-06 19:41:34.191: e/androidruntime(8466): at hotmetter.pack.getphoto.onactivityresult(getphoto.java:55) 05-06 19:41:34.191: e/androidruntime(8466): at android.app.activity.dispatchactivityresult(activity.java:3908) 05-06 19:41:34.191: e/androidruntime(8466): at android.app.activitythread.deliverresults(activitythread.java:2528) </code></pre><p>poradenství prosím. díky!</p>
<p>spusťte aplikaci v režimu ladění a nastavte zarážku, pokud <code>(requestcode == select\_picture)</code> a zkontrolujte každou proměnnou, jak budete postupovat, abyste zajistili, že je nastavena podle očekávání. pokud získáváte npe na <code>img.setimageuri(selectedimageuri);</code>, pak <code>img</code> nebo <code>selectedimageuri</code> nejsou nastaveny. </p>
Emulátor Android je hot-nasazení. Po uložení a klepněte na tlačítko `'run'`(za předpokladu, že žádné chyby kompilace) se bude balit a znovu nasadit emulátoru, který bude poté znovu spustit aplikaci spustit novou verzi. To samé platí, pokud máte Android Developer telefon připojený přes USB.


Pokud se zobrazí hlášení „Varování: Aktivita není spuštěna, její současný úkol byl na frontě“, je dobré skončit / přesunout zepředu běžící aplikaci v emulátoru pomocí tlačítka zpět. Vypadá to, že Android nepřepíše spuštěnou aplikaci, kterou v tomto případě. Instagram Direct si nejde stáhnout, protože je to součást Instagramu. Jaký máte android? Proč si nestáhnete nejnovější verzi z obchodu play? Na to bude potřeba nejspíše doinstalovat aplikaci pokud to nemůžeš najít v základu. Nevím jak to má android. Ve Windows je Store a vím že android má tohoto obdobu u Google a je tam mnohem více aplikací a k tomuto tématu tam toho bude spousty. Někdo jistě doporučí něco dobrého.. Hledej: <https://cs.wikipedia.org/wiki/Časosběr> správné (anglické) klíčové slovo. Já "android - fotoaparát" jaksi nepoužívám. Možná by mohlo napomoci hledajíce odpověd na problém, uvést značku mobilu. Android nestačí se domnívám, neb z jednoho zrovna píši. Screenshot jsi vložil špatně, nic nevidíme. Jakou plachtu máš na PC? Netusim. Jen me napada v Nastaveni Posilani zprav v chatu zda by to nebylo tam. ![](/Client.Images/smileys/8.gif) Nevíš jak... blá bláblá prostě sis stahl zavirovanou appku a řešíš tu srajdy. Pokud reset nepomůže > přehrátí ROM. Nic víc, nic míň, popřípadně flash a vaházet vše co nesedí pod off topicem (pro pokročilé > uspíš android a hrabš se v něm).Návod najdeš na googlu.A ono sama se nic neudělá.... Pokud nemáš třeba prestige (tam se to stahovalo) tak za to si můžeš svým neurvalým stahováním sám...Prej ono samo... to říkej ve školce ![](/Client.Images/smileys/4.gif) V nastavení aplikace v Androidu je možnost: Vymazat mezipaměť a uložená data. Zkoušel jsi? C ++ libmedia knihovna není součástí veřejného API. Někteří lidé používají to, ale je to velmi znechucený, protože by to mohlo zlomit na některých zařízeních a / nebo v některé z budoucích verzí systému Android.


Vyvinul jsem zvukový záznam aplikace, a věřte mi, audio podpora je velmi konzistentní napříč různými zařízeními, je to **velmi složité** , takže IMO pomocí libmedia přímo je špatný nápad.


Jediný způsob, jak zachytit surový zvuk s veřejným API je použít Java [AudioRecord](http://developer.android.com/reference/android/media/AudioRecord.html) třídu. Bude vám dává PCM data, která pak můžete umístit přechází na jednotce C optimalizovány rutiny.


Alternativně, i když to je trochu těžší, mohli byste napsat C / C ++ wrapper kolem třídy Java AudioRecord, jak je to možné instance Java objektů a volání metod přes JNI.