本文的目的是介绍android–无法解析符号’Twitter’–TwitterFabric的详细情况,特别关注androidstudio无法解析符号的相关信息。我们将通过专业的研究、有关数据的分析等多
本文的目的是介绍android – 无法解析符号’Twitter’ – Twitter Fabric的详细情况,特别关注androidstudio无法解析符号的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解android – 无法解析符号’Twitter’ – Twitter Fabric的机会,同时也不会遗漏关于Android Fabric TwitterCore登录没有TwitterLoginButton、Android miniTwitter登录界面开发实例、Android Twitter Fabric SDK与Google GSON发生冲突、android – Twitter Fabric MultiDex导致NoClassDefFoundError的知识。
本文目录一览:- android – 无法解析符号’Twitter’ – Twitter Fabric(androidstudio无法解析符号)
- Android Fabric TwitterCore登录没有TwitterLoginButton
- Android miniTwitter登录界面开发实例
- Android Twitter Fabric SDK与Google GSON发生冲突
- android – Twitter Fabric MultiDex导致NoClassDefFoundError
android – 无法解析符号’Twitter’ – Twitter Fabric(androidstudio无法解析符号)
Twitter Fabric – Cannot Resolve Symbol
我已经清理,重建,甚至重新启动我的Android工作室,尝试重新同步Gradle但尚无解决方案.
这是我的Build.Gradle(Project)
buildscript { repositories { mavenCentral() maven { url 'https://maven.fabric.io/public' } jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() maven { url 'https://maven.fabric.io/public' } } }
这是我的Build.Gradle(应用程序)
apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsversion "22.0.1" repositories { mavenCentral() maven { url 'https://maven.fabric.io/public' } } defaultConfig { applicationId "com.example.hp.navigationexercise" minSdkVersion 11 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } } } dependencies { compile filetree(dir: 'libs',include: ['*.jar']) compile('com.twitter.sdk.android:twitter-core:1.3.1@aar') { transitive = true; } }
这是我的活动
public class TestActivity extends ActionBaractivity { String TWITTER_KEY="mykey"; String TWITTER_SECRET="mysecret"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); /* Twitter */ TwitterauthConfig authConfig = new TwitterauthConfig(TWITTER_KEY,TWITTER_SECRET); Fabric.with(this,new Twitter(authConfig)); setUpTwitterButton(); } TwitterLoginButton twitterButton; private void setUpTwitterButton() { twitterButton = (TwitterLoginButton) findViewById(R.id.login_button); twitterButton.setCallback(new Callback<TwitterSession>() { @Override public void success(Result<TwitterSession> result) { Log.d("login:","twitter:success"); Log.d("Data",result.data.getUserName()); } @Override public void failure(TwitterException exception) { Toast.makeText(getApplicationContext(),"twitter Login Failed",Toast.LENGTH_SHORT).show(); } }); } @Override public void onActivityResult(int requestCode,int resultCode,Intent data) { super.onActivityResult(requestCode,resultCode,data); // Pass the activity result to the login button. twitterButton.onActivityResult(requestCode,data); } }
解决方法
compile('com.twitter.sdk.android:twitter:1.3.2@aar') { transitive = true; }
Android Fabric TwitterCore登录没有TwitterLoginButton
The simplest way to authenticate a user is using TwitterLoginButton.
如何在没有TwitterLoginButton的情况下验证用户?
解决方法
一个示例用法将是(其中getCallingActivity()可以替换为您的调用Activity)
Twit@R_301_6193@uthClient twit@R_301_6193@uthClient = new Twit@R_301_6193@uthClient(); twit@R_301_6193@uthClient.authorize(getCallingActivity(),new Callback<TwitterSession>() { @Override public void success(final Result<TwitterSession> result) { final TwitterSession sessionData = result.data; // Do something with the returned TwitterSession (contains the user token and secret) } @Override public void failure(final TwitterException e) { // Do something on fail } });
然后将onActivityResult委托给Twit@R_301_6193@uthClient,
twit@R_301_6193@uthClient.onActivityResult(requestCode,resultCode,data);
Android miniTwitter登录界面开发实例
本文要演示的Android开发实例是如何完成一个Android中的miniTwitter登录界面,下面将分步骤讲解怎样实现图中的界面效果,让大家都能轻松的做出美观的登录界面。
先贴上最终要完成的效果图:
miniTwitter登录界面的布局分析
首先由界面图分析布局,基本可以分为三个部分,下面分别讲解每个部分。
第一部分是一个带渐变色背景的LinearLayout布局,关于背景渐变色就不再贴代码了,效果如下图所示:
第二部分,红色线区域内,包括1,2,3,4 如图所示:
红色的1表示的是一个带圆角且背景色为#55FFFFFF(淡蓝色)的RelativeLayout布局,代码如下:
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#55FFFFFF" /> <!-- 设置圆角 注意: bottomrighTradius是左下角而不是右下角 bottomLefTradius右下角--> <corners android:topLefTradius="10dp" android:topRighTradius="10dp" android:bottomrighTradius="10dp" android:bottomLefTradius="10dp"/> </shape>
solid表示填充色,这里填充的是淡蓝色。corners是设置圆角。
dp (即dip,device independent pixels)设备独立像素:这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA ,不依赖像素。在android上开发的程序将会在不同分辨率的手机上运行。为了让程序外观不至于相差太大,所以引入了dip的概念。比如定义一个矩形10 x 10dip. 在分辨率为160dpi 的屏上,比如G1,正好是10 x 10像素。 而在240 dpi 的屏,则是15 x 15 像素。换算公式为 pixs = dips * (density/160)。density 就是屏的分辨率。
然后RelativeLayou的background引用此drawable,具体RelativeLayout设置如下:
<RelativeLayout android:id="@+id/login_div" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="15dip" android:layout_margin="15dip" android:background="@drawable/background_login_div_bg" > </RelativeLayout>
padding 是指内边距(也就是指内容与边框的距离),layout_margin为外边距(它的上一层与边框的距离)。
接下来是区域2,为账号的文本和输入框,首先是账号的文本,代码如下:
<TextView android:id="@+id/login_user_input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="5dp" android:text="@string/login_label_username"https://www.jb51.cc/tag/nor/" target="_blank">normalText"/>
android:layout_alignParentTop 这里表示此TextView的位置处于顶部
android:layout_marginTop="5dp" 这里表示此TextView的边框与RelativeLayout的顶部边框距离有5dp
这里需要对这个TextView设置下字体颜色和字体大小,定义在res/style.xml里面:
<style name="normalText" parent="@android:style/TextAppearance"> <item name="android:textColor">#444</item> <item name="android:textSize">14sp</item> </style>
定义账号的输入框,如下:
<EditText android:id="@+id/username_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/login_username_hint" android:layout_below="@id/login_user_input" android:singleLine="true" android:inputType="text"/>
android:hint 输入框里面的提示文字,android:layout_below这里是设置为在账号的文本框的下面,android:singleLine 为单行输入(即你输入回车的时候不会在换行了),android:inputType这里text表示输入的类型为文本。
区域3是密码文本和输入框,同区域2,代码如下:
<TextView android:id="@+id/login_password_input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/username_edit" android:layout_marginTop="3dp" android:text="@string/login_label_password"https://www.jb51.cc/tag/nor/" target="_blank">normalText"/> <EditText android:id="@+id/password_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/login_password_input" android:password="true" android:singleLine="true" android:inputType="textPassword" />
区域4,登录按钮:
<Button android:id="@+id/signin_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/password_edit" android:layout_alignRight="@id/password_edit" android:text="@string/login_label_signin" android:background="@drawable/blue_button" />
第三部分:底下的文字和两张图片,分别标记了1,4:
Android miniTwitter登录界面
区域1:还是一个RelativeLayout,但这里设置的很简单,代码如下:
<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> </RelativeLayout>
区域2:"没有账号?注册"这几个文字定义在string里面,包含了一个<a>标签:
<string name="login_register_link">没有帐号? <a href="#" mce_href="#">注册</a></string>
定义如下:
<TextView android:id="@+id/register_link" android:text="@string/login_register_link" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:textColor="#888" android:textColorLink="#FF0066CC" />
TextView是支持简单的html标签的,如<a>标签,但并不是支持所有标签,支持更复杂的html标签得用webView组件。
android:textColorLink是设置文字链接的颜色. 虽然TextView支持<a>标签,但是这里是不能点此链接的,不要被假象迷惑。
区域3是一直猫的卡通图片,貌似有点丑,将就下吧:
XML/HTML代码
<ImageView android:id="@+id/miniTwitter_logo" android:src="@drawable/cat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" android:layout_marginRight="25dp" android:layout_marginLeft="10dp" android:layout_marginBottom="25dp" />
android:layout_alignParentRight="true" 位于layout的最右边
android:layout_alignParentBottom="true" 位于layout的最底部
android:layout_marginRight="25dp" 该imageView的边框距离layout边框有25dp,其他的margin类似。
区域4 是一个带文字的图片的ImageView:
<ImageView android:src="@drawable/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/miniTwitter_logo" android:layout_alignBottom="@id/miniTwitter_logo" android:paddingBottom="8dp" /> android:layout_toLeftOf="@id/miniTwitter_logo" 在那个小猫ImageView的左边(水平位置) android:layout_alignBottom="@id/miniTwitter_logo" 这里意思是这两个ImageView(区域3和区域4)下边缘对齐 android:paddingBottom="8dp" 图片距离ImageView底部边框8dp,也就是将图片上抬个8dp
实现miniTwitter登陆界面的具体步骤
具体步骤如下:
第一步:一些字符串定义
/miniTwitterLoginDemo/res/values/strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World,LoginActivity!</string> <string name="login_label_username">帐号</string> <string name="login_label_password">密码</string> <string name="login_label_signin">登 录</string> <string name="login_status_logging_in">登录中...</string> <string name="login_username_hint">Email或手机号</string> <string name="login_register_link">没有帐号? <a href="#" mce_href="#">注册</a></string> <string name="app_name">miniTwitter</string> </resources>
第二步:
/miniTwitterLoginDemo/res/values/style.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="normalText" parent="@android:style/TextAppearance"> <item name="android:textColor">#444</item> <item name="android:textSize">14sp</item> </style> </resources>
第三步:背景色为渐变色
/miniTwitterLoginDemo/res/drawable-mdpi/background_login.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#FFACDAE5" android:endColor="#FF72CAE1" android:angle="45" /> </shape>
第四步:背景色味淡蓝色且为圆角
/miniTwitterLoginDemo/res/drawable-mdpi/background_login_div_bg.xml
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#55FFFFFF" /> <!-- 设置圆角 注意: bottomrighTradius是左下角而不是右下角 bottomLefTradius右下角--> <corners android:topLefTradius="10dp" android:topRighTradius="10dp" android:bottomrighTradius="10dp" android:bottomLefTradius="10dp"/> </shape>
第五步:
/miniTwitterLoginDemo/res/layout/login.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background_login"> <!-- padding 内边距 layout_margin 外边距 android:layout_alignParentTop 布局的位置是否处于顶部 --> <RelativeLayout android:id="@+id/login_div" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="15dip" android:layout_margin="15dip" android:background="@drawable/background_login_div_bg" > <!-- 账号 --> <TextView android:id="@+id/login_user_input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="5dp" android:text="@string/login_label_username"https://www.jb51.cc/tag/nor/" target="_blank">normalText"/> <EditText android:id="@+id/username_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/login_username_hint" android:layout_below="@id/login_user_input" android:singleLine="true" android:inputType="text"/> <!-- 密码 text --> <TextView android:id="@+id/login_password_input" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/username_edit" android:layout_marginTop="3dp" android:text="@string/login_label_password"https://www.jb51.cc/tag/nor/" target="_blank">normalText"/> <EditText android:id="@+id/password_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/login_password_input" android:password="true" android:singleLine="true" android:inputType="textPassword" /> <!-- 登录button --> <Button android:id="@+id/signin_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/password_edit" android:layout_alignRight="@id/password_edit" android:text="@string/login_label_signin" android:background="@drawable/blue_button" /> </RelativeLayout> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/register_link" android:text="@string/login_register_link" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:textColor="#888" android:textColorLink="#FF0066CC" /> <ImageView android:id="@+id/miniTwitter_logo" android:src="@drawable/cat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" android:layout_marginRight="25dp" android:layout_marginLeft="10dp" android:layout_marginBottom="25dp" /> <ImageView android:src="@drawable/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/miniTwitter_logo" android:layout_alignBottom="@id/miniTwitter_logo" android:paddingBottom="8dp" /> </RelativeLayout> </LinearLayout>
第七步:
/miniTwitterLoginDemo/src/com/mytwitter/acitivity/LoginActivity.java
这里要注意的是,该Activity是无标题的,设置无标题需要在setContentView之前设置,否则会报错。
package com.mytwitter.acitivity; import android.app.Activity; import android.os.Bundle; import android.view.Window; public class LoginActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestwindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.login); } }
到此,Android中的miniTwitter登录界面的制作就介绍完毕了,是不是做出不错的登录界面并不算难呢?谢谢大家
的阅读。
Android Twitter Fabric SDK与Google GSON发生冲突
Error:Execution Failed for task ':app:dexDebug'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: D:\Android\android-studio\sdk\build-tools\android-4.4W\dx.bat --dex --output ... Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/google/gson/JsonSerializer; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103)
我尝试从我的app模块lib文件夹中删除我的静态Gson库,之后一切都很顺利.删除从gradle模块依赖项添加twitter sdk的行时也一样,所以我很确定这两者之间存在某种冲突,我正在寻求解决它.
任何帮助将不胜感激 !
如果它对人们有任何用处,这里有我的gradle app模块文件:
apply plugin: 'com.android.application' apply plugin: 'io.fabric' android { ... buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } debug { signingConfig signingConfigs.debug ext.enableCrashlytics = false } } } repositories { jcenter() mavenCentral() maven{ url 'https://maven.fabric.io/repo'} } dependencies { compile filetree(dir: 'libs',include: ['*.jar']) compile project(':facebook') compile 'com.android.support:support-v13:20.0.0' compile 'com.google.android.gms:play-services:6.1.11' compile('com.twitter.sdk.android:twitter:1.0.0@aar') { transitive = true; } }
解决方法
尝试运行./gradlew app:dependencies以查看gradle任务的所有依赖项.您的编译依赖项将包括以下内容:
+--- com.twitter.sdk.android:twitter-core:1.0.0 | | +--- com.squareup.retrofit:retrofit:1.6.1 | | | \--- com.google.code.gson:gson:2.2.4 | | +--- com.google.code.gson:gson:2.2.4 | | \--- io.fabric.sdk.android:fabric:1.0.0
这表明GSON确实被Fabric内部使用.
我的建议是从你的libs /文件夹中删除GSON,并将其作为直接依赖项添加到build.gradle中,而不是将其从Twitter deps图中排除.您也可以利用构建工具中的依赖项解析机制.
dependencies { compile filetree(dir: 'libs',include: ['*.jar']) // Maybe remove this. compile project(':facebook') compile 'com.android.support:support-v13:20.0.0' compile 'com.google.android.gms:play-services:6.1.11' compile('com.twitter.sdk.android:twitter:1.0.0@aar') { transitive = true; } compile 'com.google.code.gson:gson:2.2.4' // Added. }
android – Twitter Fabric MultiDex导致NoClassDefFoundError
我无法禁用我的Multidex支持.我不知道为什么我会遇到这个问题.试图在网上找到解决方案,但没有帮助.
这是我得到的例外.
java.lang.NoClassDefFoundError: com.twitter.sdk.android.core.TwitterauthConfig$1 at com.twitter.sdk.android.core.TwitterauthConfig.<clinit>(TwitterauthConfig.java:39) at MyApplication.onCreate(MyApplication.java:46) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4702) at android.app.ActivityThread.access$1400(ActivityThread.java:168) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1389) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5493) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025) at dalvik.system.NativeStart.main(Native Method)
这是我的app.gradle
buildscript { repositories { maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.+' } } apply plugin: 'com.android.application' apply plugin: 'io.fabric' repositories { maven { url 'https://maven.fabric.io/public' } mavenCentral() } android { packagingOptions { exclude 'meta-inf/NOTICE.txt' exclude 'meta-inf/LICENSE.txt' } compileSdkVersion 22 buildToolsversion "23.0.0 rc3" defaultConfig { minSdkVersion 16 targetSdkVersion 22 versionCode 1 versionName "1.0" multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } } dexOptions { javaMaxHeapSize "2g" } } dependencies { compile filetree(dir: 'libs',include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:multidex:1.0.1' compile 'com.android.support:design:22.2.1' compile 'com.android.support:recyclerview-v7:22.2.1' compile 'com.android.support:cardview-v7:22.2.1' compile 'com.android.support:support-v4:22.2.1' compile project(':MPChartLib') compile 'com.facebook.android:facebook-android-sdk:4.6.0' compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') { transitive = true; } compile('com.twitter.sdk.android:twitter:1.8.0@aar') { transitive = true; } }
这是MyApplication类中的Twitter代码.
@Override public void onCreate() { super.onCreate(); //Configure twitter using Twitter key and Secret Key TwitterauthConfig authConfig = new TwitterauthConfig(TWITTER_KEY,TWITTER_SECRET); // add functionalities which we are using with Fabric Fabric.with(this,new Crashlytics(),new Twitter(authConfig)); FacebookSdk.sdkInitialize(getApplicationContext()); // Initialize the SDK before executing any other operations,// especially,if you're using Facebook UI elements. }
即使我尝试了this解决方案,但没有帮助.
任何提示或参考赞赏.
解决方法
Android 5.0 and higher uses a runtime called ART which natively
supports loading multiple dex files from application APK files. ART
performs pre-compilation at application install time which scans for
classes(..N).dex files and compiles them into a single .oat file for
execution by the Android device. For more information on the Android
5.0 runtime,see Introducing ART.
这意味着您的应用程序可以在API级别21或更高级别上正常运行.
Android 5.0之前的Multidex支持
Versions of the platform prior to Android 5.0 use the Dalvik runtime
for executing app code. By default,Dalvik limits apps to a single
classes.dex bytecode file per APK. In order to get around this
limitation,you can use the multidex support library,which becomes
part of the primary DEX file of your app and then manages access to
the additional DEX files and the code they contain.
所以,首先要确保你已经导入了正确的依赖,这似乎你做到了.
dependencies { compile 'com.android.support:multidex:1.0.1' }
在清单中,将Multidex支持库中的MultiDexApplication类添加到application元素中.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.multidex.myapplication"> <application ... android:name="android.support.multidex.MultiDexApplication"> ... </application> </manifest>
替代方案,如果您的应用程序扩展了Application类,您可以覆盖attachBaseContext()方法并调用MultiDex.install(this)来启用multidex.
public void onCreate(Bundle arguments) { MultiDex.install(getTargetContext()); super.onCreate(arguments); ... }
最后,您需要通过添加multiDexEnabled true来更新build.gradle文件,如下所示:
defaultConfig { applicationId '{Project Name}' minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true }
我希望它会帮助你.
今天关于android – 无法解析符号’Twitter’ – Twitter Fabric和androidstudio无法解析符号的分享就到这里,希望大家有所收获,若想了解更多关于Android Fabric TwitterCore登录没有TwitterLoginButton、Android miniTwitter登录界面开发实例、Android Twitter Fabric SDK与Google GSON发生冲突、android – Twitter Fabric MultiDex导致NoClassDefFoundError等相关知识,可以在本站进行查询。
本文标签: