folder Tahribat.com Forumları
linefolder Android - IOS Programlama
linefolder [Çözüldü] Android Studio "Startactivity" Hatası



[Çözüldü] Android Studio "Startactivity" Hatası

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    HalfGlaze
    HalfGlaze's avatar
    Kayıt Tarihi: 15/Ocak/2016
    Erkek


    Sorun anlamsızca çözüldü aynı koda sahip iki yazılımdan biri çalışmıyor.

    Buyurun bu şekilde: 
    Sağdaki çalışıyor soldaki çalışmıyor.












    Orj konu:


    Merhaba.

    Android studio üzerinden programlamaya yeni başladım (1-2 hafta) kaynak olarak youtubeda bir kanalı ve kodlab yayınının A.S. ile programlama kitabını kullanıyorum.  

    Takip ettiğim kanalda intent konusuna gelindi ve sonrasında "startActivity(intent)" kodunu yazarak devam etti Manifestden kullanıcı izni aldı bende aynıları yaptım. Sonrasında uygulamayı çalıştırdı takır takır çalıştı. Ben de çalışmadı. Numara yazılıp butona tıkladığı zaman arama uygulaması açılıp aramayı gerçekleştirmesi gerekiyor fakat olmuyo .

    startActivity kodunda hata gösterdi alt+enter yapınca "Add permission check" dedi başta izin almamı istedi sandım manifestten izni silip tekrar kontrol ederek yazdım fakat bir sıkıntı yok izinde daha sonra programın kendisinin eklemesine izin verdim ve MainActivity.java'ya "startActivity (intent)"in üstüne şunlar eklendi:

    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
    // TODO: Consider calling
    // ActivityCompat#requestPermissions
    // here to request the missing permissions, and then overriding
    // public void onRequestPermissionsResult(int requestCode, String[] permissions,
    // int[] grantResults)
    // to handle the case where the user grants the permission. See the documentation
    // for ActivityCompat#requestPermissions for more details.
    return;
    }

    Fakat burda bir sıkıntı var "this" kodunda hata gösteriyor neden gösteriyor hiç bir fikrim yok hatanın nedeni yazmıyor. Ne yapmam gerekiyor?

     

    Yazılım şu şekilde:

    activity_main.xml

     

     

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="emironder.telefonaramasi.MainActivity">

    <EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="phone"
    android:ems="10"
    android:id="@+id/editText"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

    <ImageView
    android:layout_width="120dp"
    android:layout_height="60dp"
    android:id="@+id/imageView"
    android:layout_below="@+id/editText"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="76dp"
    android:src="@android:drawable/ic_menu_call"
    android:background="#1aff00" />
    </RelativeLayout>

     

    MainActivity.java 

    package emironder.telefonaramasi;

    import android.content.Intent;
    import android.media.Image;
    import android.net.Uri;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.ImageView;

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText et= (EditText) findViewById(R.id.editText);
    ImageView call= (ImageView) findViewById(R.id.imageView);

    call.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("Tel:"+et.getText().toString()));
    startActivity(intent);

    }
    });
    }
    }

     

    AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="emironder.telefonaramasi">

    <uses-permission android:name="android.permission.CALL_PHONE"/>

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    </application>

    </manifest>

     

     

    HalfGlaze tarafından 17/Oca/16 03:51 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    mobildeyim pek bakamadım ama gördüğüm kadarıyla o hata veren this i ve yanındaki virgülü sil.

     

    ayrıca denemeyi gerçek telefonda yapmak gerekir


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    HalfGlaze
    HalfGlaze's avatar
    Kayıt Tarihi: 15/Ocak/2016
    Erkek

    Nexus 5 de denedim emulatörle aynı sonucu veriyor.

    This i ve yanındaki virgülü silince dizi hepten hata veriyor.  

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    parametreye baktım da context istiyor hocam

    this yerine sırasıyla getapplicationcontext() ve getbasecontext() dener misin

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    HalfGlaze
    HalfGlaze's avatar
    Kayıt Tarihi: 15/Ocak/2016
    Erkek

    "Error:(31, 56) error: cannot find symbol method getapplicationcontext()" ikisinde de aynı hatayı alıyorum.

    Bu startActivity'i aynı mantıkta başka bir yerde kullanmaya çalıştığımda aynı hatayı almıştım.

    HalfGlaze tarafından 15/Oca/16 22:55 tarihinde düzenlenmiştir
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    hocam bunlar case sensetive :) zahmet edip google a yazıp örneklere bakarsan nasıl yazıldığını görürsün. büyük küçük harf önemlidir yazılımda. mobildeyim dedim o yüzden çok fazla şey bekleme :) 

    kolay gelsin


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    HalfGlaze
    HalfGlaze's avatar
    Kayıt Tarihi: 15/Ocak/2016
    Erkek

    Dikkatsiz bi şekilde kopyala yapıştır yapmıştım teşekkür ederim sorun halloldu.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    HalfGlaze
    HalfGlaze's avatar
    Kayıt Tarihi: 15/Ocak/2016
    Erkek

    Hocam bi sıkıntı daha var farklı başlık açmayım dedim.

    Ben o startActivity de ki hatayı giderdiğim zaman nedense buton işlevini gerçekleştirmiyor.

    https://www.dropbox.com/s/jjwulzq86o1g0rd/telefon%20aramas%C4%B1.apk?dl=0

    Uygulama burda nerde hata yaptım bulamıyorum :/

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    Uri.parse("Tel:".....) Buradaki "Tel:" + kısmını sil. Sadece Edittext'den alacağın veri olmalı.

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    HalfGlaze
    HalfGlaze's avatar
    Kayıt Tarihi: 15/Ocak/2016
    Erkek

    Hepsi tamam bu sefer de uygulama kapanıyor butona basınca... Şaka gibi ya :D 2 satırlık programda olan şeye bak

    logcat de fatal exception şu şekilde başlıyor

    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.CALL dat=65 }

    Edit: Az önce telefonumda test etmeyi denedim telefonda butona tıkladığında hiç bir şey olmuyor. Emulatörde butona tıkladığı zaman kapanıyor.



    mainactivity.java'nın son hali: 

     

    Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText num = (EditText) findViewById(R.id.editText);
    ImageButton call = (ImageButton) findViewById(R.id.imageButton);

    call.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(num.getText().toString()));
    if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
    return;
    }
    startActivity(intent);

    }
    });
    }

     

     

    HalfGlaze tarafından 17/Oca/16 02:47 tarihinde düzenlenmiştir
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    h0rtl4kk
    h0rtl4kk's avatar
    Kayıt Tarihi: 10/Şubat/2014
    Erkek

    "tel:" + Kısmı olması gerekiyormuş hocam şimdi baktım internetten. Sadece numarayı yazmak yeterlidir diye hatırlıyordum yanlış hatırlıyormuşum.

     

Toplam Hit: 3058 Toplam Mesaj: 14
android android studio intent