2016-05-01 13 views
3

GoogleのサインインとFacebookのログインをアプリに統合しました。デバッグモードではすべて正常に動作しますが、リリースモードではクラッシュします。app-release.apkのFacebookログインクラッシュ

04-30 11:15:12.113 28773-28788/? E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2 
               Process: com.cs442.Team14, PID: 28773 
               java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference 
                at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:772) 
                at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:800) 
                at com.facebook.internal.Utility.queryAppSettings(Utility.java:846) 
                at com.facebook.login.widget.LoginButton$1.run(LoginButton.java:491) 
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                at java.lang.Thread.run(Thread.java:818) 

私は既にマニフェストファイルにアプリケーションIDを追加しました。だからここ

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value= "XXXXXXXXX"/> 

(私は複数の言語をサポートしているので、私は、@文字列/ facebook_app_idを使用した場合、私はエラーを得ていた。だからではなく、私が代わりに、直接番号を貼り付け)

は、私がこれまで続いている段階であります:

  1. GoogleやFacebookの開発者向けサイトで作成したプロジェクト
  2. が追加されましたそれぞれのデバッグは、開発者サイトでキーを離すと
  3. G私のアプリケーションのためにeneratedキーストアファイル、それにキーを入れて(すなわち、keytool -exportcert -list -v -alias -keystore \ .keystore、keytool -exportcert -alias -keystore \ GoShop.keystore | openssl sha1 - バイナリ| Androidのメーカーからのopenssl base64で)
  4. 生成された署名付きAPK:ビルド - > APKを署名生成 - >上のキーストアファイルを使用

私は何をしないのですか?

+0

android:value = "XXXXXXXXX"あなたは直接値を割り当てますか? – sasikumar

+0

http://stackoverflow.com/questions/29298996/facebook-android-sdk-v4-0-0-sharedialog-nullpointerexception-issue – sasikumar

+0

XXXXX = FacebookのアプリケーションID – hrushi

答えて

3

strings.xmlの文字列参照を使用していないことが問題であるようです。私は2つの言語をサポートしているので、2つのstrings.xml(en、de)ファイルがあります。ここでは2つの問題があります:1)マニフェストファイルで、メタデータタグに 'atring/facebook_app_id'を使用する必要があります。2)今、複数のstrings.xmlがあるので、文字列参照を使用すると、 (ManifestResource)のバリエーションが見つかりました(これはばかげています)

メタデータとしてApp Id番号を直接使用すると、クラッシュ(リリースバリアントのみ。デバッグバリアントは正常に動作します)。私がdeのstrings.xmlファイルを削除したら、うまくいった!私は、Facebook SDKチームが本当にそんなばかげた問題を抱えていることを願っています。

1

translatable="false"をstrings.xmlリソースファイルの文字列値に追加する必要があります。

他のstrings.xmlリソース(strings-pt.xml、strings.de-xmlなど)には、選択した文字列変数を含めることはできません。

関連する問題