182.m1-ActionBar1初识

本文详细介绍如何在Android应用中使用ActionBar,包括配置步骤、创建菜单项、处理点击事件等,并提供了MainActivity和DetailActivity的具体实现代码。

参考android模拟器的ApiDemo == Action Bar == Action Bar Usage

引入示例程序的方法“new - project - Android - Android示例项目 - 选择一个版本

使用动作条的步骤:

1.引用v7-appcompat
2. Activity继承ActionBarActivity
3. Manifist 文件中android:theme =“@ style / Theme.AppCompat.Light”>

4.在res /菜单文件夹中的main.xml文件

文件中yourapp可以自己随便写,这里是设置动作条的条目,这里只添加了一个条目--search(需要在字符串中添加对应条目)

main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <!-- Search, should appear as action button -->
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          yourapp:showAsAction="ifRoom" 
          yourapp:actionViewClass="android.support.v7.widget.SearchView"/>
    
    
    
</menu>
需要在RES /价值/字符串中添加一个标题
<string name="action_search">search</string>

接着,重写活动的onCreateOptionsMenu()方法,代码如下所示:

    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        // Inflate the menu; this adds items to the action bar if it is present.  
        MenuInflater inflater = getMenuInflater();
	inflater.inflate(R.menu.main,menu);
	super.onCreateOptionsMenu(menu);
	}

响应操作按钮的点击事件

@Override 
public boolean onOptionsItemSelected(MenuItem item){  
    switch(item.getItemId()){  
    case R.id.action_compose:  
        Toast.makeText(this,“Compose”,Toast.LENGTH_SHORT).show();  
        return true;  
    case R.id.action_delete:  
        Toast.makeText(this,“Delete”,Toast.LENGTH_SHORT).show();  
        return true;  
    case R.id.action_settings:  
        Toast.makeText(this,“Settings”,Toast.LENGTH_SHORT).show();  
        return true;  
    default:  
        return super.onOptionsItemSelected(item);  
    }  
主逻辑文件ActivityMain.java实现了搜索的点击,以及监听,通过的onClick实现跳转
package com.ldw.market;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.SearchView.OnQueryTextListener;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity implements OnQueryTextListener{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    //初始化ActionBar的界面
    @SuppressLint("NewApi") 
	@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);
        // 如果运行的环境 (部署到什么版本的手机 )大于3.0,低版本的不支持
        if (android.os.Build.VERSION.SDK_INT > 11) {
        SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
			searchView.setOnQueryTextListener(this);// 搜索的监听
 		
 			
 		} 
 		
        return true;
    }
    
    public void click(View v){
    	Intent intent = new Intent(getApplicationContext(), DetailActivity.class);
    	startActivity(intent);
    }
    
    /** 处理actionBar菜单条目的点击事件 */
    @Override
	public boolean onOptionsItemSelected(MenuItem item) {
		System.out.println("所有");
		//当前点击的条目是search
		if (item.getItemId() == R.id.action_search) {
			Toast.makeText(getApplicationContext(), "搜索", 0).show();
		}
		return super.onOptionsItemSelected(item);
	}

	// 当搜索提交的时候
	@Override
	public boolean onQueryTextChange(String arg0) {
		Toast.makeText(getApplicationContext(), arg0, 0).show();
		return false;
	}

	// 当搜索的文本发生变化
	@Override
	public boolean onQueryTextSubmit(String arg0) {
		Toast.makeText(getApplicationContext(), arg0, 0).show();
		return false;
	}
	
    
}

修改跳转的Activity跳转的标题ActionBar

首先在res/values/strings.xml中添加一个label

<string name="app_detail">应用详情</string>

然后在Manifist文件中重新设置label,如果不设置的时候就是默认的label

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ldw.market"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat.Light" >
        <activity
            android:name="com.ldw.market.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!-- 左侧收缩栏 -->
        <activity android:name="com.ldw.market.DetailActivity" 
            android:label="@string/app_detail"
            /> 
        
    </application>

</manifest>

跳转成功以后,实现点击图标就关闭activity有2种方法一种是代码中实现,另一种是清单文件中配置

第一种:

DetalActivity.java中监听图标的点击然后调用finish(),同时需要设置 actionBar.setDisplayHomeAsUpEnabled(true);

package com.ldw.market;

import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.MenuItem;
import android.widget.Toast;

public class DetailActivity extends ActionBarActivity{

	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_detail);
        
        //获取到actionBar,使用getSupportActionBar,getActionBar是android.app下面的getActionBar
        ActionBar actionBar = getSupportActionBar();
        //图标的显示与隐藏,显示返回按钮
        actionBar.setDisplayHomeAsUpEnabled(true);
        
    }
	
	/** 处理actionBar菜单条目的点击事件,实现点击图标来隐藏当前的界面 */
    @Override
	public boolean onOptionsItemSelected(MenuItem item) {
		System.out.println("所有");
		//当前点击的条目是search
		if (item.getItemId() == android.R.id.home) {
			finish();
		}
		return super.onOptionsItemSelected(item);
	}
}

第二种方法是清单文件中配置,给当前的activity配置一个parentActivityName,这样就直接返回parentActivityName,但是仍然需要设置 actionBar.setDisplayHomeAsUpEnabled(true);

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ldw.market"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat.Light" >
        <activity
            android:name="com.ldw.market.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!-- 左侧收缩栏 -->
        <activity  android:name="com.ldw.market.DetailActivity"
            android:label="@string/app_detail"
             android:parentActivityName="com.ldw.market.MainActivity"
            >
             <! - 父活动元数据支持4.0及更低 - >
        <元数据
            机器人:名字= “android.support.PARENT_ACTIVITY”
            android:value =“com.ldw.market.MainActivity”/>
        </活动>
    </应用>

</清单>




欧姆龙FINS(工厂集成网络系统)协议是专为该公司自动化设备间数据交互而设计的网络通信标准。该协议构建于TCP/IP基础之上,允许用户借助常规网络接口执行远程监控、程序编写及信息传输任务。本文档所附的“欧ronFins.zip”压缩包提供了基于C与C++语言开发的FINS协议实现代码库,旨在协助开发人员便捷地建立与欧姆龙可编程逻辑控制器的通信连接。 FINS协议的消息框架由指令头部、地址字段、操作代码及数据区段构成。指令头部用于声明消息类别与长度信息;地址字段明确目标设备所处的网络位置与节点标识;操作代码定义了具体的通信行为,例如数据读取、写入或控制器指令执行;数据区段则承载实际交互的信息内容。 在采用C或C++语言实施FINS协议时,需重点关注以下技术环节: 1. **网络参数设置**:建立与欧姆龙可编程逻辑控制器的通信前,必须获取控制器的网络地址、子网划分参数及路由网关地址,这些配置信息通常记载于设备技术手册或系统设置界面。 2. **通信链路建立**:通过套接字编程技术创建TCP连接至控制器。该过程涉及初始化套接字实例、绑定本地通信端口,并向控制器网络地址发起连接请求。 3. **协议报文构建**:依据操作代码与目标功能构造符合规范的FINS协议数据单元。例如执行输入寄存器读取操作时,需准确配置对应的操作代码与存储器地址参数。 4. **数据格式转换**:协议通信过程中需进行二进制数据的编码与解码处理,包括将控制器的位状态信息或数值参数转换为字节序列进行传输,并在接收端执行逆向解析。 5. **异常状况处理**:完善应对通信过程中可能出现的各类异常情况,包括连接建立失败、响应超时及错误状态码返回等问题的处理机制。 6. **数据传输管理**:运用数据发送与接收函数完成信息交换。需注意FINS协议可能涉及数据包的分割传输与重组机制,因单个协议报文可能被拆分为多个TCP数据段进行传送。 7. **响应信息解析**:接收到控制器返回的数据后,需对FINS响应报文进行结构化解析,以确认操作执行状态并提取有效返回数据。 在代码资源包中,通常包含以下组成部分:展示连接建立与数据读写操作的示范程序;实现协议报文构建、传输接收及解析功能的源代码文件;说明库函数调用方式与接口规范的指导文档;用于验证功能完整性的测试案例。开发人员可通过研究这些材料掌握如何将FINS协议集成至实际项目中,从而实现与欧姆龙可编程逻辑控制器的高效可靠通信。在工程实践中,还需综合考虑网络环境稳定性、通信速率优化及故障恢复机制等要素,以确保整个控制系统的持续可靠运行。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
> Task :app:mergeDebugJavaResource FAILED [Incubating] Problems report is available at: file:///D:/android%20project/EasyEdge-Android-YoloV3_MobileNetV3_large-arm-SDK/build/reports/problems/problems-report.html FAILURE: Build completed with 3 failures. 1: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':app:checkDebugDuplicateClasses'. > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable > Duplicate class javax.activation.ActivationDataFlavor found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.CommandInfo found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.CommandInfo$Beans found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.CommandInfo$Beans$1 found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.CommandMap found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.CommandObject found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.DataContentHandler found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.DataContentHandlerFactory found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.DataHandler found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.DataHandler$1 found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.DataHandlerDataSource found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.DataSource found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.DataSourceDataContentHandler found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.FileDataSource found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.FileTypeMap found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.MailcapCommandMap found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.MailcapCommandMap$1 found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.MimeType found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.MimeTypeParameterList found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.MimeTypeParseException found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.MimetypesFileTypeMap found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.MimetypesFileTypeMap$1 found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.ObjectDataContentHandler found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.SecuritySupport found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.SecuritySupport$1 found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.SecuritySupport$2 found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.SecuritySupport$3 found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.SecuritySupport$4 found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.SecuritySupport$5 found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.URLDataSource found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Duplicate class javax.activation.UnsupportedDataTypeException found in modules jakarta.activation-api-1.2.1.jar -> jakarta.activation-api-1.2.1 (jakarta.activation-api-1.2.1.jar) and javax.activation-1.2.0.jar -> javax.activation-1.2.0 (javax.activation-1.2.0.jar) Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. ============================================================================== 2: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':app:processDebugResources'. > A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction > Android resource linking failed error: resource style/ThemeOverlay.AppCompat.Dark.ActionBar (aka com.baidu.ai.easyaimobile.demo:style/ThemeOverlay.AppCompat.Dark.ActionBar) not found. error: resource style/Theme.AppCompat.Light.DarkActionBar (aka com.baidu.ai.easyaimobile.demo:style/Theme.AppCompat.Light.DarkActionBar) not found. com.baidu.ai.edge.demo.app-mergeDebugResources-2:/values/values.xml:14: error: style attribute 'attr/colorPrimary (aka com.baidu.ai.easyaimobile.demo:attr/colorPrimary)' not found. com.baidu.ai.edge.demo.app-mergeDebugResources-2:/values/values.xml:15: error: style attribute 'attr/colorPrimaryDark (aka com.baidu.ai.easyaimobile.demo:attr/colorPrimaryDark)' not found. com.baidu.ai.edge.demo.app-mergeDebugResources-2:/values/values.xml:16: error: style attribute 'attr/colorAccent (aka com.baidu.ai.easyaimobile.demo:attr/colorAccent)' not found. error: resource style/ThemeOverlay.AppCompat.Light (aka com.baidu.ai.easyaimobile.demo:style/ThemeOverlay.AppCompat.Light) not found. error: failed linking references. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. ============================================================================== 3: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':app:mergeDebugJavaResource'. > A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction > 3 files found with path 'META-INF/DEPENDENCIES' from inputs: - D:\android project\EasyEdge-Android-YoloV3_MobileNetV3_large-arm-SDK\app\libs\httpclient-4.5.14.jar - D:\android project\EasyEdge-Android-YoloV3_MobileNetV3_large-arm-SDK\app\libs\httpcore-4.4.16.jar - D:\android project\EasyEdge-Android-YoloV3_MobileNetV3_large-arm-SDK\app\libs\httpmime-4.5.6.jar Adding a packagingOptions block may help, please refer to https://developer.android.com/reference/tools/gradle-api/8.2/com/android/build/api/dsl/ResourcesPackagingOptions for more information * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. ============================================================================== Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.12/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 16s 26 actionable tasks: 3 executed, 23 up-to-date error: resource style/ThemeOverlay.AppCompat.Dark.ActionBar (aka com.baidu.ai.easyaimobile.demo:style/ThemeOverlay.AppCompat.Dark.ActionBar) not found. error: resource style/Theme.AppCompat.Light.DarkActionBar (aka com.baidu.ai.easyaimobile.demo:style/Theme.AppCompat.Light.DarkActionBar) not found. error: resource style/ThemeOverlay.AppCompat.Light (aka com.baidu.ai.easyaimobile.demo:style/ThemeOverlay.AppCompat.Light) not found. error: failed linking references.
07-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值