我正在开发一个使用 material-intro dependencies 的安卓应用程序对于介绍幻灯片, 但是当幻灯片完成并尝试从 Slide(MaterialintroActivity) 切换到我的主要 Activity 时,应用程序崩溃了。
LogCat
07-26 12:42:19.566 897-944/com.naive.LISTY E/Surface: getSlotFromBufferLocked: unknown buffer: 0xa9fb8d90
AppManifest 代码
<application
android:allowBackup="true"
android:icon="@mipmap/icon"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainIntroActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity"/>
</application>
MainIntroActivity
public class MainIntroActivity extends IntroActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setFullscreen(true);
super.onCreate(savedInstanceState);
addSlide(new SimpleSlide.Builder()
.title(R.string.title)
.description(R.string.description)
.image(R.mipmap.ic_launcher)
.background(R.color.background)
.backgroundDark(R.color.background_dark)
.buttonCtaClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
Intent main=new Intent(MainIntroActivity.this, MainActivity.class);
startActivity(main);
}
})
.build());
}}
MainActivity代码
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private TaskDbHelper mHelper;
private ListView mTaskListView;
private ArrayAdapter<String> mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if(!prefs.getBoolean("new1",false)){
//Only 1st time run code here
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("new1", true);
editor.commit();
}*/
setContentView(R.layout.activity_main);
mHelper = new TaskDbHelper(this);
mTaskListView = (ListView) findViewById(R.id.list_todo);
updateUI();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_add_task:
final EditText taskEditText = new EditText(this);
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("Add new task")
// .setMessage("What do you want to do next?")
.setView(taskEditText)
.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String task = String.valueOf(taskEditText.getText());
if(task != null && !task.isEmpty()) {
SQLiteDatabase db = mHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(TaskContract.TaskEntry.COL_TASK_TITLE, task);
db.insertWithOnConflict(TaskContract.TaskEntry.TABLE,
null,
values,
SQLiteDatabase.CONFLICT_REPLACE);
updateUI();
db.close();
} else {
}
}
})
.setNegativeButton("Cancel", null)
.create();
dialog.show();
default:
return super.onOptionsItemSelected(item);
}
}
private void updateUI() {
ArrayList<String> taskList = new ArrayList<>();
SQLiteDatabase db = mHelper.getReadableDatabase();
Cursor cursor = db.query(TaskContract.TaskEntry.TABLE,
new String[]{TaskContract.TaskEntry._ID, TaskContract.TaskEntry.COL_TASK_TITLE},
null, null, null, null, null);
while (cursor.moveToNext()) {
int idx = cursor.getColumnIndex(TaskContract.TaskEntry.COL_TASK_TITLE);
taskList.add(cursor.getString(idx));
}
if (mAdapter == null) {
mAdapter = new ArrayAdapter<>(this,
R.layout.item_todo,
R.id.task_title,
taskList);
mTaskListView.setAdapter(mAdapter);
} else {
mAdapter.clear();
mAdapter.addAll(taskList);
mAdapter.notifyDataSetChanged();
}
cursor.close();
db.close();
}
public void deleteTask(View view) {
View parent = (View) view.getParent();
TextView taskTextView = (TextView) parent.findViewById(R.id.task_title);
String task = String.valueOf(taskTextView.getText());
SQLiteDatabase db = mHelper.getWritableDatabase();
db.delete(TaskContract.TaskEntry.TABLE,
TaskContract.TaskEntry.COL_TASK_TITLE + " = ?",
new String[]{task});
db.close();
updateUI();
}
}
最佳答案
你在测试棉花糖版本吗?因为我发现了这个问题:https://code.google.com/p/android/issues/detail?id=192357
你能尝试改变 oncreate 函数吗:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.<YOUR_XML_FILE_NAME>);
为此:
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.<YOUR_XML_FILE_NAME>);
}
如果问题仍然存在,请尝试更新您的 Android 版本,这是 Android 6.0.1 中的一个问题。希望对您有所帮助。
关于安卓报错getSlotFromBufferLocked : unknown buffer: 0xa9fb8d90,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38585253/
我遇到了未定义方法`to_key'的问题这是我的books_controller.rbclassBooksController和我的索引页如下。index.html.erb......现在当我要访问索引页面时出现如下错误。undefinedmethod`to_key'for# 最佳答案 index通常返回一个集合。事实上,您的Controller符合要求。但是,您的View试图为其定义一个表单。正如您所发现的,这不会成功。表单适用于实体,而不适用于集合。该错误在您看来以及您希望如何处理index。
我使用mini_fb将文字和图片分享到facebook。我的要求是当分享文本时,它应该只分享文本当分享文字和图片时,文字和图片都应该分享。我的问题是,当我仅共享文本时,来自url的随机图像会与文本一起发布到facebook。搜索了一下,发现facebook正在抓取带有og:image标签的图片,并抓取最后一张图片发上去。但是我的站点中没有带有属性"og:image"的显式元标记。为了避免这种情况,我还放置了带有属性“og:image”的显式元标记。但是客户不需要这个。当没有使用“mini_fb”gem将图像共享到facebook时,我可以明确禁用图像共享到facebook吗?
我被以下的joda-timeAPI宠坏了:DateTimenow=newDateTime();DateTimeninetyDaysAgo=now.minusDays(90);我正尝试在Ruby中做类似的事情,但我是now=Time.nowninetyDaysAgo=now-(90*24)但是,数学不在这里(我真的在午夜处理日期)。是否有用于日期减法的友好API? 最佳答案 require'date'now=Date.todayninety_days_ago=(now-90)通过IRB控制台运行这个我得到:>>require'date
我知道您可以使用defer=""html属性来延迟javascript文件,但它仅在IE中受支持(笑),并且只会延迟javascript文件,我需要延迟整个插件的加载。有什么办法可以做到这一点吗?我喜欢Facebook集成等等,但是插件太慢了。它使加载时间增加了一倍以上。谢谢!~jacksonTweet注意:.socialplugins类仅用于在我的标题中定位。 最佳答案 以非阻塞方式动态加载javascript文件:http://berklee.github.com/nbl/或https://github.com/rgrove/l
我刚刚开始使用FacebookGraphAPI。如何仅通过1个FB.api调用来调用多个属性?现在,我有FB.api('/me',function(me){if(me){varmyEmail=me.email;varmyID=me.id;varmyFirst_name=me.first_name;//Otherattributes}});和FB.api('/me/friends',{fields:'name,id'},function(response){varfriends=response.data;}});如何将两个API调用合并为一个调用,例如,仅调用1个FB.api()?所有
我在使用FacebookFB.UI-FeedandSare对话框时遇到了一些问题。我需要将网站页面发送给friend,我正在使用FB.UIJavascriptAPI。根据facebook文档,他们说你必须使用“fromandto”参数。但是当我使用“从和到”参数时它不起作用。当我删除这些参数时它工作正常,但我不能肯定地发布到friend墙上。我一直在寻找一段时间,并尝试了以下步骤:用户是否启用了正确的设置以在他的时间线上发布(检查)用户是否喜欢该facebook页面(检查)我登录了吗(检查)这是文档的链接:FeedandShareDialogs这是我的代码:PS:我收到警告说的是:“帖
我有这个Web应用程序登录页面,它在文档加载完成后从FacebookJavaScriptSDK调用FB.GetLoginStatus()。这在所有浏览器(包括移动设备)上都运行良好,从此幸福快乐。但是,有一天,突然间,我注意到页面加载完成后,SDK无法获取Facebook用户的登录状态数据。我看了一下控制台,我看到了行周围的东西LoaddeniedbyX-Frame-Options[massivelinkgeneratedbytheSDK]doesnotpermitframing.这就是让我烦恼的地方:这在Safari中运行得非常好。当我在Chrome上打开网络应用程序时,我被介绍到错
我正在使用通过here提供的文档使用以下代码。共享对话框正确出现。问题是我无法区分用户在对话框中执行的“取消”和“发布”操作。我想这将是响应的一部分。FB.ui({method:'share',href:'https://developers.facebook.com/docs/',},function(response){if(response&&!response.error_code){console.log(response);}else{alert('Errorwhileposting.');}});编辑:控制台的输出不提供任何知道的方式Cancel-Object{e2e:"
登录正常,但它只要求基本权限,取消或完成对话框时不会触发任何警报。window.fbAsyncInit=function(){//inittheFBJSSDKFB.init({appId:'XXX',//AppIDfromtheAppDashboardchannelUrl:'XXX',//ChannelFileforx-domaincommunicationcookie:true,//setsessionscookiestoallowyourservertoaccessthesession?xfbml:true,//parseXFBMLtagsonthispage?frictionle
我尝试在我的网站上使用FB登录,需要获取用户信息(电子邮件、public_profile、出生日期和位置)。但是在登录后,我只获得了用户的姓名和facebookId。代码:Javascript部分:functionstatusChangeCallback(response){console.log('statusChangeCallback');console.log(response);//Theresponseobjectisreturnedwithastatusfieldthatletsthe//appknowthecurrentloginstatusoftheperson.//