안녕하세요 여러분, 아래 코드가 실행되고 있습니다. 내가 setShareIntent(); 문을하지만 내가 그것을 주석을 때 응용 프로그램이 충돌! 누구든지 코드를 살펴보고 내가 오랫동안 솔루션을 찾기 위해 노력해 왔던 것처럼 실수를 바로 잡을 수 있도록 도와 주시겠습니까? 미리 감사드립니다.액션 공유 제공자 (java.lang.NullPointerException)
<item
android:id="@+id/action_share"
android:orderInCategory="100"
android:title="FS7"
android:actionProviderClass="android.support.v7.widget.ShareActionProvider"
app:showAsAction="ifRoom"/>
수입 :
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.ShareActionProvider;
import android.view.Menu;
import android.view.MenuItem;
자바 :
public class MainActivity extends ActionBarActivity {
private ShareActionProvider mShareActionProvider;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
MenuItem item = menu.findItem(R.id.action_share);
mShareActionProvider = (ShareActionProvider) MenuItemCompat
.getActionProvider(item);
mShareActionProvider.setShareIntent(getDefaultSharedPreferences());
return super.onCreateOptionsMenu(menu);
}
private Intent getDefaultSharedPreferences() {
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT, "FS7");
i.putExtra(Intent.EXTRA_TEXT, "Download my free application from URL...");
return i;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
로그 캣 :
01-19 02:42:48.602: E/AndroidRuntime(2546): FATAL EXCEPTION: main
01-19 02:42:48.602: E/AndroidRuntime(2546): Process: com.example.shareaction, PID: 2546
01-19 02:42:48.602: E/AndroidRuntime(2546): java.lang.NullPointerException
01-19 02:42:48.602:E/AndroidRuntime(2546):atcom.example.shareaction.MainActivity.onCreateOptionsMenu(MainActivity.java:30)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.app.Activity.onCreatePanelMenu(Activity.java:2538)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:275)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:276)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.support.v7.app.ActionBarActivityDelegate$1.onCreatePanelMenu(ActionBarActivityDelegate.java:79)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.support.v7.app.ActionBarActivityDelegateBase.preparePanel(ActionBarActivityDelegateBase.java:1056)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.support.v7.app.ActionBarActivityDelegateBase.doInvalidatePanelMenu(ActionBarActivityDelegateBase.java:1259)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.support.v7.app.ActionBarActivityDelegateBase.access$100(ActionBarActivityDelegateBase.java:80)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.support.v7.app.ActionBarActivityDelegateBase$1.run(ActionBarActivityDelegateBase.java:119)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.os.Handler.handleCallback(Handler.java:733)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.os.Handler.dispatchMessage(Handler.java:95)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.os.Looper.loop(Looper.java:136)
01-19 02:42:48.602: E/AndroidRuntime(2546): at android.app.ActivityThread.main(ActivityThread.java:5017)
01-19 02:42:48.602: E/AndroidRuntime(2546): at java.lang.reflect.Method.invokeNative(Native Method)
01-19 02:42:48.602: E/AndroidRuntime(2546): at java.lang.reflect.Method.invoke(Method.java:515)
01-19 02:42:48.602: E/AndroidRuntime(2546): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
01-19 02:42:48.602: E/AndroidRuntime(2546): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
01-19 02:42:48.602: E/AndroidRuntime(2546): at dalvik.system.NativeStart.main(Native Method)
메뉴/main.xml에
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.shareaction.MainActivity" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"
app:showAsAction="never"/>
<item
android:id="@+id/action_share"
android:orderInCategory="100"
android:title="FS7"
android:actionProviderClass="android.support.v7.widget.ShareActionProvider"
app:showAsAction="ifRoom"/>
</menu>
코드가 올바르게 표시됩니다. 전체 메뉴 코드를 추가 할 수 있습니다. main.xml – Ramz
@Ramz main.xml 파일을 업로드했습니다. – Sid
@Ramz 답장을 보내 주셔서 감사합니다. – Sid