Uses Permission Problemi (Android)
-
Selam müritler , bir web servisten veri alıp yansıtacak bir android programı kodluyorum.Socket ile bağlantı açtığımda "socket failed :EACCES (Permission denied)" hatası verdi.Bende bunu araştırdım ve uses permission ile buna izin vermemiz gerektiğini öğrendim ardından bu izini manifest dosyasına yazdım.Fakat manifest dosyasına uses permission'ı yazınca program başlamadan kapanmaya başladı problem nerde olabilir ?
Ek: <uses-permission android:name="android.permission.INTERNET"/> yazdığım izin bu arkadaşlar.
-
Logcat den gelen hata nedir?
-
hocam <application ve <activity nin dışına yazdığından eminsin değil mi ?
-
musdawdaf bunu yazdı
Logcat den gelen hata nedir?
02-12 11:07:53.820: E/Trace(902): error opening trace file: No such file or directory (2)
02-12 11:07:54.610: D/AndroidRuntime(902): Shutting down VM
02-12 11:07:54.610: W/dalvikvm(902): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
02-12 11:07:54.640: E/AndroidRuntime(902): FATAL EXCEPTION: main
02-12 11:07:54.640: E/AndroidRuntime(902): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.testprojesi/com.example.testprojesi.MainActivity}: android.os.NetworkOnMainThreadException
02-12 11:07:54.640: E/AndroidRuntime(902): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
02-12 11:07:54.640: E/AndroidRuntime(902): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
02-12 11:07:54.640: E/AndroidRuntime(902): at android.app.ActivityThread.access$600(ActivityThread.java:130)
02-12 11:07:54.640: E/AndroidRuntime(902): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
02-12 11:07:54.640: E/AndroidRuntime(902): at android.os.Handler.dispatchMessage(Handler.java:99)
02-12 11:07:54.640: E/AndroidRuntime(902): at android.os.Looper.loop(Looper.java:137)
02-12 11:07:54.640: E/AndroidRuntime(902): at android.app.ActivityThread.main(ActivityThread.java:4745)
02-12 11:07:54.640: E/AndroidRuntime(902): at java.lang.reflect.Method.invokeNative(Native Method)
02-12 11:07:54.640: E/AndroidRuntime(902): at java.lang.reflect.Method.invoke(Method.java:511)
02-12 11:07:54.640: E/AndroidRuntime(902): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-12 11:07:54.640: E/AndroidRuntime(902): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-12 11:07:54.640: E/AndroidRuntime(902): at dalvik.system.NativeStart.main(Native Method)
02-12 11:07:54.640: E/AndroidRuntime(902): Caused by: android.os.NetworkOnMainThreadException
02-12 11:07:54.640: E/AndroidRuntime(902): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
02-12 11:07:54.640: E/AndroidRuntime(902): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
02-12 11:07:54.640: E/AndroidRuntime(902): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
02-12 11:07:54.640: E/AndroidRuntime(902): at libcore.io.IoBridge.connect(IoBridge.java:112)
02-12 11:07:54.640: E/AndroidRuntime(902): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
02-12 11:07:54.640: E/AndroidRuntime(902): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
02-12 11:07:54.640: E/AndroidRuntime(902): at java.net.Socket.startupSocket(Socket.java:566)
02-12 11:07:54.640: E/AndroidRuntime(902): at java.net.Socket.tryAllAddresses(Socket.java:127)
02-12 11:07:54.640: E/AndroidRuntime(902): at java.net.Socket.<init>(Socket.java:177)
02-12 11:07:54.640: E/AndroidRuntime(902): at java.net.Socket.<init>(Socket.java:149)
02-12 11:07:54.640: E/AndroidRuntime(902): at com.example.testprojesi.MainActivity.onCreate(MainActivity.java:32)
02-12 11:07:54.640: E/AndroidRuntime(902): at android.app.Activity.performCreate(Activity.java:5008)
02-12 11:07:54.640: E/AndroidRuntime(902): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
02-12 11:07:54.640: E/AndroidRuntime(902): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
02-12 11:07:54.640: E/AndroidRuntime(902): ... 11 more -
manyaki bunu yazdı
hocam
evet hocam dışında aynen şöyle :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testprojesix"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.testprojesix.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest> -
network işlemini asynctask olarak yapmalısın.Android main ui uzerinde network islemi yaptırmıyor
-
musdawdaf bunu yazdı
network işlemini asynctask olarak yapmalısın.Android main ui uzerinde network islemi yaptırmıyor
Bu konuyla ilgili örnek verebileceğin bir tutorial tarzı bişey var mı hocam oradan bakayım nasıl yapabileceğime.
-
sokoban bunu yazdımusdawdaf bunu yazdı
network işlemini asynctask olarak yapmalısın.Android main ui uzerinde network islemi yaptırmıyor
Bu konuyla ilgili örnek verebileceğin bir tutorial tarzı bişey var mı hocam oradan bakayım nasıl yapabileceğime.
private class getData extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { return "Executed"; } @Override protected void onPostExecute(String result) { // might want to change "executed" for the returned string passed // into onPostExecute() but that is upto you } @Override protected void onPreExecute() { } @Override protected void onProgressUpdate(Void... values) { } }
musdawdaf tarafından 12/Şub/14 13:19 tarihinde düzenlenmiştir
bu sekilde class olarak tanımlıyorsun doingbackground ve onPostExecute işlemleri yapmak icin kullanilan ana alan bunu direk cagiriyorsun new GetData(""); diye ama parametre falan da verebilirsin.normal kullaniminda bunu url alan bir sekilde yapıyorlar.url den gelen data doingbackground da islenir en son set edecegin kapatacagin seyleri de onPostta kapatırsın.bu basit bir ornek detaylı kullanmak istersen baska kaynaklari incele -
musdawdaf bunu yazdısokoban bunu yazdımusdawdaf bunu yazdı
network işlemini asynctask olarak yapmalısın.Android main ui uzerinde network islemi yaptırmıyor
Bu konuyla ilgili örnek verebileceğin bir tutorial tarzı bişey var mı hocam oradan bakayım nasıl yapabileceğime.
çok teşekkürler hocam hemen deniyorum.