質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Q&A

解決済

1回答

735閲覧

AndroidでTwitter Kitを使う方法

yuji38kwmt

総合スコア437

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

0グッド

0クリップ

投稿2018/05/19 10:28

編集2018/05/19 10:29

環境

  • Android Studio 3.1.2
  • Java8
  • 実機: Android7

やりたいこと

Twitterに投稿するAndroidアプリを作りたいです。
以下のサイトを参考にしています。

問題

Androidで動かしたら、アプリが終了しました。
LogCatは以下の通りです。

txt

105-19 19:26:44.756 20383-20383/com.example.myapplication4 W/System: ClassLoader referenced unknown path: /data/app/com.example.myapplication4-1/lib/arm64 205-19 19:26:44.783 20383-20383/com.example.myapplication4 I/InstantRun: starting instant run server: is main process 305-19 19:26:44.811 20383-20383/com.example.myapplication4 I/HwCust: Constructor found for class android.app.HwCustActivityImpl 405-19 19:26:44.862 20383-20383/com.example.myapplication4 W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable 505-19 19:26:44.964 20383-20383/com.example.myapplication4 E/AndroidRuntime: FATAL EXCEPTION: main 6 Process: com.example.myapplication4, PID: 20383 7 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication4/com.example.myapplication4.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.twitter.sdk.android.core.identity.TwitterLoginButton.setCallback(com.twitter.sdk.android.core.Callback)' on a null object reference 8 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2796) 9 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2867) 10 at android.app.ActivityThread.-wrap12(ActivityThread.java) 11 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1570) 12 at android.os.Handler.dispatchMessage(Handler.java:105) 13 at android.os.Looper.loop(Looper.java:156) 14 at android.app.ActivityThread.main(ActivityThread.java:6595) 15 at java.lang.reflect.Method.invoke(Native Method) 16 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) 17 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) 18 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.twitter.sdk.android.core.identity.TwitterLoginButton.setCallback(com.twitter.sdk.android.core.Callback)' on a null object reference 19 at com.example.myapplication4.MainActivity.onCreate(MainActivity.java:47) 20 at android.app.Activity.performCreate(Activity.java:6910) 21 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) 22 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2749) 23 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2867)  24 at android.app.ActivityThread.-wrap12(ActivityThread.java)  25 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1570)  26 at android.os.Handler.dispatchMessage(Handler.java:105)  27 at android.os.Looper.loop(Looper.java:156)  28 at android.app.ActivityThread.main(ActivityThread.java:6595)  29 at java.lang.reflect.Method.invoke(Native Method)  30 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)  31 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)  3205-19 19:26:44.971 20383-20383/com.example.myapplication4 I/Process: Sending signal. PID: 20383 SIG: 9 33

https://github.com/twitter/twitter-kit-android/wiki/Upgrade-to-Twitter-Kit-3.0

https://github.com/twitter/twitter-kit-android/wiki/Upgrade-to-Twitter-Kit-3.0

質問

エラーの原因を教えていただきたいです。

ソース

  • MainActivity.java

java

1package com.example.myapplication4; 2 3import android.content.Intent; 4import android.os.Bundle; 5import android.support.v7.app.AppCompatActivity; 6import android.util.Log; 7 8import com.twitter.sdk.android.core.Callback; 9import com.twitter.sdk.android.core.DefaultLogger; 10import com.twitter.sdk.android.core.Result; 11import com.twitter.sdk.android.core.Twitter; 12import com.twitter.sdk.android.core.TwitterAuthConfig; 13import com.twitter.sdk.android.core.TwitterConfig; 14import com.twitter.sdk.android.core.TwitterException; 15import com.twitter.sdk.android.core.TwitterSession; 16import com.twitter.sdk.android.core.identity.TwitterLoginButton; 17 18public class MainActivity extends AppCompatActivity { 19 //add 20 21 TwitterLoginButton loginButton; 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 27 28 TwitterConfig config = new TwitterConfig.Builder(this) 29 .logger(new DefaultLogger(Log.DEBUG)) 30 .twitterAuthConfig(new TwitterAuthConfig("currentKey", "currentSecret")) 31 .debug(true) 32 .build(); 33 Twitter.initialize(config); 34 35 36 loginButton = (TwitterLoginButton) findViewById(R.id.login_button); 37 loginButton.setCallback(new Callback<TwitterSession>() { 38 @Override 39 public void success(Result<TwitterSession> result) { 40 // Do something with result, which provides a TwitterSession for making API calls 41 } 42 43 @Override 44 public void failure(TwitterException exception) { 45 // Do something on failure 46 } 47 }); 48 49 50 setContentView(R.layout.activity_main); 51 } 52 53 @Override 54 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 55 super.onActivityResult(requestCode, resultCode, data); 56 57 // Pass the activity result to the login button. 58 loginButton.onActivityResult(requestCode, resultCode, data); 59 } 60} 61
  • AndroidManifest.xml

xml

1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.myapplication4"> 4 5 <application 6 android:allowBackup="true" 7 android:icon="@mipmap/ic_launcher" 8 android:label="@string/app_name" 9 android:roundIcon="@mipmap/ic_launcher_round" 10 android:supportsRtl="true" 11 android:theme="@style/AppTheme"> 12 <activity android:name=".MainActivity"> 13 <intent-filter> 14 <action android:name="android.intent.action.MAIN"/> 15 16 <category android:name="android.intent.category.LAUNCHER"/> 17 </intent-filter> 18 </activity> 19 </application> 20 21 <uses-permission android:name="android.permission.INTERNET" /> 22</manifest>
  • Moduleのbuild.gradele

gradle

1buildscript { 2 repositories { 3 maven { url 'https://maven.fabric.io/public' } 4 } 5 6 dependencies { 7 classpath 'io.fabric.tools:gradle:1.+' 8 } 9} 10apply plugin: 'com.android.application' 11apply plugin: 'io.fabric' 12 13repositories { 14 maven { url 'https://maven.fabric.io/public' } 15} 16 17 18android { 19 compileOptions { 20 sourceCompatibility 1.8 21 targetCompatibility 1.8 22 } 23 compileSdkVersion 26 24 defaultConfig { 25 applicationId "com.example.myapplication4" 26 minSdkVersion 24 27 targetSdkVersion 26 28 versionCode 1 29 versionName "1.0" 30 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 31 } 32 buildTypes { 33 release { 34 minifyEnabled false 35 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 36 } 37 } 38 productFlavors { 39 } 40} 41 42repositories { 43 jcenter() 44} 45 46 47dependencies { 48 implementation('com.twitter.sdk.android:twitter:3.3.0@aar') { 49 transitive = true 50 } 51 52 implementation fileTree(include: ['*.jar'], dir: 'libs') 53 implementation 'com.android.support:appcompat-v7:26.1.0' 54 implementation 'com.android.support.constraint:constraint-layout:1.1.0' 55 testImplementation 'junit:junit:4.12' 56 androidTestImplementation 'com.android.support.test:runner:1.0.2' 57 androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' 58 implementation('com.crashlytics.sdk.android:crashlytics:2.9.2@aar') { 59 transitive = true; 60 } 61} 62
  • projectのbuild.gradle

gradle

1// Top-level build file where you can add configuration options common to all sub-projects/modules. 2 3buildscript { 4 5 repositories { 6 google() 7 jcenter() 8 } 9 dependencies { 10 classpath 'com.android.tools.build:gradle:3.1.2' 11 12 13 // NOTE: Do not place your application dependencies here; they belong 14 // in the individual module build.gradle files 15 } 16} 17 18allprojects { 19 repositories { 20 google() 21 jcenter() 22 } 23} 24 25task clean(type: Delete) { 26 delete rootProject.buildDir 27} 28

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

setContentView(R.layout.activity_main);の後に、loginButton.setCallBackを実行する必要がありました。

投稿2018/05/19 12:18

yuji38kwmt

総合スコア437

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問